Поделиться в Facebook Поделиться ВКонтакте Поделиться в LinkedIn Опубликовать в Twitter

Инструментальные средства разработки

Watcom C и Watcom C++

Основные особенности пользовательского интерфейса инструментального средства разработки Watcom C — среда программирования третьего поколения с базовыми средствами редактирования исходного текста и низкоуровневыми инструментальными средствами отладки. Средства отладки обеспечивают доступ к низкоуровневой информации при работе с различными операционными системами.

Универсальный компилятор Watcom представляет из себя единый для всех платформ двоичный файл, запускаемый небольшим загрузчиком, индивидуальным для каждой ОС. Watcom C++ обеспечивает реализацию языка С++ и многоплатформенные инструменты. Компилятор также может генерировать быстро исполняемый, компактный код для большого числа платформ. Пакет Watcom С/C++ включает в себя полный набор программного инструментария для разработки программ на языках C и C++ под QNX4:

  • ANSI-совместимый оптимизирующий компилятор языка C;
  • ANSI-совместимый оптимизирующий компилятор языка C++ (надстройка над компилятором C);
  • ассемблер;
  • компоновщик;
  • объектный библиотекарь;
  • объектный дизассемблер;
  • консольный полноэкранный отладчик;
  • профилировщик.

История развития Watcom

Под эгидой фирмы SciTech Software был создан проект Open Watcom. В настоящее время проект развивается самостоятельно. Open Watcom — проект с открытым кодом по поддержке и развитию многоплатформных компиляторов Watcom C, C++ и Fortran и сопутствующих программ. Лицензия открытого ПО от Sybase позволяет свободное коммерческое и некоммерческое использование пакета Open Watcom.

Photon Application Builder

Photon Application Builder

Графическое средство разработки Photon Application Builder позволяет программистам разрабатывать графические приложения легко и быстро. Программы Photon могут использовать несколько уровней программного обеспечения, представленного библиотечными функциями. На нижнем уровне пользователь может работать с графическими примитивами типа «линия», «текст» и им подобными. На верхнем уровне программирования пользователю доступны готовые элементы интерфейса, называемые виджеты (widgets). Виджеты представляют собой объекты, поведением которых на экране может управлять Photon.

Наряду с геометрическими ресурсами, такими как цвет, размер, положение в пространстве событий, каждый виджет поддерживает ресурс, представляющий собой список функций, определяемых программистом (callbacks) и выполняемых после получения какого либо события. Например, в список ресурсов объекта «кнопка» можно внести функцию открытия нового окна и изменения вида кнопки после ее нажатия.

Photon Application Builder

Виджеты, как правило, не являются уникальными, а представляют собой семейства, образующие класс. Все виджеты, принадлежащие к одному классу, обладают одинаковыми свойствами и могут наследовать свойства своих базовых классов. Помимо виджетов, представленных в библиотеках Photon, программист может использовать свои собственные виджеты или перенесенные из среды X Window System.

Средства отладки и анализа

В ОСРВ QNX4 существует богатый инструментарий для отладки разрабатываемого ПО и анализа работы системы.

Watcom Debugger это инструмент отладки, для анализа и нахождения ошибок в тексте программы. Он позволяет выполнять код пошагово, устанавливать точки останова, согласно необходимым условиям, модифицировать переменные и память, просматривать поля структур и классов, и многое другое. В пользовательском интерфейсе отладчика используется контекстно-зависимое меню, а также устранена необходимость отладки в командном режиме. Возможно также использовать Watcom Debugger в графической среде Photon. Пользовательский интерфейс почти всегда одинаков в обоих вариантах.

Watcom Debugger

Утилита Debugger32 это низкоуровневый отладчик, позволяющий устанавливать точки останова, пошагово выполнять программу, просматривать и редактировать память, разбирать код, и проверять порты ввода/вывода. Возможно использование этого отладчика для отладки обработчика прерываний.

Утилита tracelogger сохраняет в файл данные из trace-буфера ядра. Записанные данные о событии запоминаются (фиксируются) в двоичном формате. В удобочитаемом виде эти данные можно посмотреть с помощью утилиты traceinfo. Вместе эти утилиты позволяют фиксировать время выполнения события, для анализа при диагностике неисправностей.

В ОСРВ QNX4 можно наблюдать за поведением ОС на самом низком уровне (т.е. осуществлять системное профилирование), включая события диспетчеризации, аппаратные прерывания и обмен сообщениями между процессами, т.к. все системные события так или иначе проходят через микроядро. В стандартной поставке ОС существуют две специализированные утилиты. Утилита monitor перехватывает события микроядра и записывает их в указанный файл (журнал), чтение которого обеспечивает еще одна утилита, msgprint, которая расшифровывает коды событий и отображает их в читаемой текстовой форме. Для каждого события указывается временная метка, описание события, имена и идентификаторы ассоциируемых с ним процессов.

Для получения системной информации существует утилита sin (System INformation). Информация по каждому процессу, предоставляемая утилитой sin, включает в себя:

  • аргументы, переданные процессу в командной строке при запуске, и его флаги;
  • приоритет, дисциплина диспетчеризации и состояние (если процесс блокирован, то тип и причины блокировки);
  • корень файловой системы и текущий каталог;
  • окружение;
  • иерархия, «родственные» отношения («отец» – «сын», и т.п.);
  • открытые файлы и используемые описатели файлов;
  • идентификаторы процесса (process ID – PID) и сеансы;
  • версия и время создания исполняемого модуля, размер областей кода и данных;
  • селектор и смещение «магических чисел»;
  • таймеры и ассоциируемые с ними действия, время старта и время активности;
  • реальный и эффективный идентификатор пользователя и группы;
  • текущее значение регистров процессора;
  • сведения по обработке сигналов.

Информация (по умолчанию это идентификаторы сессии и процесса, имя процесса, приоритет и дисциплина диспетчеризации, состояние, источник блокировки и размеры областей кода и данных) отображается в несколько колонок с соответствующими заголовками.

Работа утилиты sin

Дополнительно утилитой sin предоставляется следующая общая информация по каждому узлу сети:

  • аппаратная конфигурация (тип процессора и системной шины, индекс производительности, тип дисплея, объем оперативной памяти);
  • разрешение системных таймеров и лимиты системных ресурсов (системные области «кучи» менеджера процессов, максимально допустимое количество процессов, таймеров, сеансов, символьных имен процессов, и т.п.);
  • количество лицензированных узлов сети;
  • дата, время и источник начальной загрузки;
  • распределение серверов символьных имен (name locator) по узлам сети;
  • текущий перечень виртуальных каналов.

Благодаря сетевой прозрачности QNX4, всю эту информацию можно получить не только с локальной машины, но и с любого узла сети. Утилита vsin предоставляет аналогичную утилите sin функциональность, но в графической форме.

Задать вопрос on-line Обсудить на форуме