(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Повышение производительности при помощи IBM Debugger for AIX

Источник: IBM

Решение IBM Debugger входит во многие продукты IBM, предназначенные для разработки программного обеспечения. Программа представляет собой интерактивный отладчик на уровне исходных кодов, помогающий отлаживать приложения, написанные на разных языках программирования и работающие на разных платформах. Ключевой функциональной возможностью IBM Debugger является наличие клиентской части с единым пользовательским интерфейсом, которая способна взаимодействовать с различными механизмами отладки. Механизм отладки всегда выполняется на родной платформе, тогда как интерфейсная клиентская часть выполняется на удаленном компьютере. Для начала сеанса отладки механизм отладки подключается к интерфейсной клиентской части через сетевое соединение.

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

Поддерживаемые платформы и языки программирования

Хотя компоненты IBM Debugger for AIX поставляются во многих продуктах IBM, в данной статье особое внимание уделяется использованию IBM Debugger с компиляторами IBM XL C/C++ и COBOL для AIX. (В разделе "Ресурсы" в конце статьи приведены ссылки на продукты IBM, поддерживающие отладку с использованием технологии, применяемой в IBM Debugger for AIX, а также дополнительные возможности.)

IBM Debugger for AIX позволяет выполнять отладку AIX-программ, написанных на языках программирования C, C++ и (или) COBOL. Интерфейсная клиентская программа работает на системе Microsoft® Windows® и подключается удаленно по сети к механизму отладчика, выполняющемуся на AIX.

Как это работает

Инструментальная программа IBM Debugger использует модель клиент/сервер, в которой клиентская программа с пользовательским интерфейсом (UI) подключается к удаленному механизму отладки (debug engine) для создания сеанса отладки. Такая модель отладки является одним из главных преимуществ данного решения, поскольку UI может общаться с несколькими различными механизмами отладки одновременно. Это взаимодействие обрабатывается посредством скрытого процесса - демона (daemon), работающего в UI-клиенте. Собственно работа по отладке выполняется в механизмах отладки: например, механизмы отладки управляют выполнением исследуемого кода, считывают отладочную информацию из исполняемых загрузочных модулей целевой машины, устанавливают точки прерывания, вычисляют выражения и дизассемблируют программные инструкции. Чтобы все это делать, механизм отладки должен иметь полную информацию о формате отлаживаемого исполняемого файла, а также информацию о среде, в которой он работает.

Начало сеанса отладки

Компилирование программы с отладочной информацией

Для отладки программы на уровне исходных кодов необходимо выполнить ее компиляцию с определенными параметрами, указывающими компилятору сгенерировать символьную информацию и отладочные ловушки (debug hook) в объектном файле. Для компилятора IBM XL C/C++ Enterprise Edition for AIX выполните компиляцию с отключенной оптимизацией (-O0) и с параметром -g.

Настройка демона

В клиентской части имеется демон, прослушивающий соединения с механизмом отладки. Демон является связующим звеном между клиентской частью и механизмом отладки и должен быть настроен до начала сеанса отладки. Отладочный демон прослушивает определенный порт на предмет соединений с механизмом отладки. Для начала отладки необходимо убедиться в том, что демон готов принимать соединения. Просмотреть и изменить состояние отладочного демона можно при помощи кнопки демона в инструментальной панели представления Debug в клиентской программе. Если демон прослушивает соединения, пиктограмма имеет вид icon if daemon is listening. Если демон не прослушивает соединения, пиктограмма имеет вид icon if daemon is not listening.

По умолчанию демон использует порт 8001. Если клиентская часть выполняется на многопользовательской машине, порт демона по умолчанию может быть уже занят другим сеансом отладки. При получении сообщения о неудачном запуске отладочного демона можно изменить номер порта демона в представлении Debug или на странице Debug Daemon preference, указав либо другой номер порта, либо диапазон номеров портов.

Удаленная отладка

Отладку программы можно выполнять удаленно, запуская клиентскую часть и механизм отладки на разных машинах. Запустите клиентскую часть на машине с системой Microsoft Windows и свяжите с ней удаленный механизм отладки, работающий на AIX, для подключения .

Чтобы начать сеанс отладки, выполните следующие действия:

  1. Запустите пользовательский интерфейс отладчика на клиентской машине.
    При запуске пользовательского интерфейса отладчика не указывайте имя программы.
  2. Убедитесь в том, что отладочный демон находится в состоянии прослушивания.
    Если он еще не находится в состоянии прослушивания, нажмите на пиктограмму демона для начала прослушивания соединений с механизмом отладки. Если порт уже используется для другого соединения с механизмом отладки, необходимо изменить номер порта или указать диапазон портов. Дополнительная информация приведена в предыдущем разделе "Настройка демона".
  3. Найдите имя хоста или IP-адрес клиентской машины.
    Клиентская машина - это машина, на которой работает пользовательский интерфейс отладчика. IP-адрес клиента можно найти путем нажатия стрелки вниз, расположенной справа от пиктограммы демона, и выбора в меню варианта Get Workstation IP. Имя хоста или IP-адрес клиентской машины необходимы для запуска механизма отладки.
  4. Запустите механизм отладки, используя следующую командную строку:
    $ irmtdbgc -qhost=<daemon host>[:port] <program name> <program parameters>
    где daemon host - имя хоста или IP-адрес клиентской машины, найденной на предыдущем шаге, а port - номер порта, который прослушивает отладочный демон.

Команда irmtdbgc поддерживает несколько параметров командной строки и распознает несколько переменных среды. Например, переменная среды DER_DBG_ADDR содержит значение по умолчанию для параметра -qhost. Чтобы получить справочную информацию по использованию команды irmtdbgc, можно выполнить команду irmtdbgc -help в командной строке.

Использование IBM Debugger

После установки соединения между клиентской частью и механизмом отладки можно приступить к отладке исходного кода. На следующем снимке экрана показан пользовательский интерфейс программы для сеанса отладки, в котором пользователь выполняет отладку программы sort:

Рисунок 1. Успешное соединение механизма отладки с пользовательским интерфейсом
Рисунок 1. Успешное соединение механизма отладки с пользовательским интерфейсом

Отладчик отображает много информации. Она сгруппирована в различные разделы, называемые представлениями (view). В следующем разделе будут рассмотрены наиболее важные представления, имеющие отношение к различным задачам отладки.

Наверное, самым используемым является представление Debug (отладка), которое является главным центром управления сеансом отладки. Кроме представления Debug, пользовательский интерфейс имеет несколько других представлений для отображения специальной информации, включая Monitors (мониторы), Breakpoints (точки прерывания), Memory and Modules (память и модули), Variables (переменные) и Registers (регистры). Пиктограммы, расположенные в панели инструментов каждого представления, предоставляют дополнительные полезные действия. Для отображения всплывающей подсказки, описывающей действие, можно поместить курсор мыши над соответствующей пиктограммой. Поэкспериментируйте с каждой из них.

Представление Debug

Представление Debug - это отправная точка любого сеанса отладки. Каждое новое соединение клиентской части с механизмом отладки добавляется в это представление для управления. Для каждого отлаживаемого процесса представление Debug отображает все его выполняющиеся подпроцессы (thread). В свою очередь, для каждого приостановленного подпроцесса отображается список фреймов стека (stack frame), представляющих иерархию вызовов. Кроме представления Debug, пользовательский интерфейс содержит несколько других представлений для отображения специальной информации, включая Variables, Breakpoints, Registers, Monitors, Memory и Modules. Кроме того, отлаживаемый в данный момент исходный файл отображается в редакторе исходных кодов (Source editor). Содержимое почти всех других представлений зависит от "активного" сеанса отладки. Сеанс отладки активизируется путем выбора цели отладки либо любого из ее компонентов (например, подпроцессы, фреймы стека) в представлении Debug. При активизации сеанса отладки содержимое остальных представлений в пользовательском интерфейсе обновляется.

Установка точек прерывания

Представление Breakpoints является центром управления точками прерывания. Здесь всегда можно просмотреть список установленных точек прерывания, а также добавить новую точку прерывания, щелкнув правой кнопкой мыши в представлении и выбрав одну из опций подменю Add Breakpoint. Поддерживаются точки прерывания различных типов, которые рассматриваются более подробно далее, в разделе "Типы точек прерывания". Точки прерывания можно сделать временно неактивными, запретив их. В представлении Breakpoints разрешенные точки прерывания обозначены галочкой, и путем переключения этого флажка их можно запрещать или разрешать.

Пошаговое прохождение по программе

Рисунок 2. Элементы управления для пошагового прохождения по программе можно найти в панели инструментов представления Debug
Рисунок 2. Элементы управления для пошагового прохождения по программе можно найти в панели инструментов представления Debug

Начиная с первой желтой стрелки, элементы управления имеют следующие названия: Step Into (шаг с заходом во вложенные блоки), Step Over (шаг с обходом вложенных блоков) и Step Return (выполнение до возврата из блока).

Эти команды доступны также из меню run. Также использовать "горячие" клавиши (keyboard shortcut) - F5, F6 и F7 соответственно. Если вы укажете программе команду Run (F8), выполнение будет продолжено до следующей точки прерывания или до завершения программы.

Проверка переменных

В представлении Variables отображается список переменных, доступных в области действия (in-scope), при каждой остановке подпроцесса или программы.

Кроме того, в представлении Variables после каждой остановки программы выделяются изменения в этих переменных. В этом представлении доступно несколько действий. Чтобы узнать, что можно сделать в определенной ситуации, вызовите контекстное меню, щелкнув правой кнопкой мыши где-нибудь в представлении. В представлении можно также поменять значения переменных, и если это сделать, то новое присвоенное значение становится действительным немедленно. Можно также изменить способ отображения переменной. Например, чтобы отобразить целое число в двоичном формате вместо используемого по умолчанию десятичного, нужно активизировать контекстное меню Change representation выбранной переменной.

Поиск в исходном коде

Естественно, способность просматривать исходный код отлаживаемой программы является критически важной для отладки. Механизм отладки пытается найти исходный код программы на основе отладочной информации, имеющейся в этой программе. Путь поиска исходных кодов по умолчанию содержит просто механизм отладки. Это означает, что механизм отладки, основываясь на информации о пути к файлам, содержащейся в скомпилированной с параметром -g программе, попытается найти исходный код на сервере. Если механизм отладки не может найти исходный код программы при помощи этой информации, можно отредактировать путь поиска исходных кодов. Это список месторасположений, в которых механизм отладки будет искать отсутствующий исходный код. Можно дать отладчику инструкцию выполнять поиск в нескольких местах, изменив путь поиска исходных кодов. Это делается с помощью опции Edit Source Lookup... в контекстном меню программы в представлении Debug.

Рисунок 3. Доступ к редактору пути поиска исходных кодов
Рисунок 3. Доступ к редактору пути поиска исходных кодов

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

Перезапуск

Иногда может оказаться, что программа проскочила интересующую нас точку и нужно перезапустить сеанс отладки. К счастью это можно сделать, не покидая дружественных пределов пользовательского интерфейса. Просто установите точку прерывания в интересующей вас точке, нажмите кнопку Restart program и запустите программу. Программа остановится на установленной точке прерывания.

Рисунок 4. Перезапуск активного сеанса отладки
Рисунок 4. Перезапуск активного сеанса отладки

Вызов справочной информации

Клиентская часть отладчика построена на основе среды с открытыми исходными кодами Eclipse и пользуется всеми преимуществами ее развитой справочной системы. Например, если поместить курсор мыши над кнопкой панели инструментов, появится всплывающая подсказка, а при нажатии клавиши F1 отобразится контекстная справочная информация для данного представления.

Пункт Key assist... в меню Help позволяет легко просмотреть все доступные "горячие" клавиши.

Рисунок 5. Активные "горячие" клавиши
Рисунок 5. Активные "горячие" клавиши

Углубленная отладка

В данном разделе рассматриваются некоторые более углубленные возможности IBM Debugger. Они позволяют быстрее определить проблему и входят в число важнейших преимуществ использования решения IBM Debugger.

Условия точек прерывания

Иногда фрагмент кода вызывается много раз, даже из различных подпроцессов, но нужно остановиться только при удовлетворении конкретного условия. Именно здесь очень полезна страница условий (conditional) мастера точек прерывания. Эта вторая необязательная страница (к ней можно обратиться, нажав кнопку Next вместо Finish на главной странице) позволяет работать с подобными ситуациями. Можно управлять подпроцессом, в котором нужно остановиться, частотой остановок и даже определить логическое (булево) выражение, которое должно стать истинным перед остановкой. Можно также установить несколько условных точек прерывания в одном и том же месте; их можно легко разрешать или запрещать в представлении Breakpoints.

Различные типы точек прерывания

Программа IBM Debugger for AIX предоставляет следующие типы точек прерывания.

  • Address (адрес). Останавливает программу при достижении указателем выполнения (execution pointer) конкретного адреса в программе. Точки прерывания этого типа создаются также при установке точки прерывания в представлении Source в режиме дизассемблирования или смешанном режиме. Это позволяет точно указать инструкцию, на которой отладчик должен остановиться.
  • Entry (вход). Останавливает программу перед выполнением входа в заданную функцию. Точку прерывания данного типа можно создать путем щелчка правой кнопкой мыши на элементе в представлении Modules. Если нужная функция не перечислена в представлении Modules из-за того, что содержащий ее исполняемый файл не был загружен, можно создать отложенную (deferred) точку прерывания при входе в функцию.
  • Line (строка). Приостанавливает программу по достижении указанной строки исходного кода. Может устанавливаться из представления Source. Точки прерывания на строке можно устанавливать как при входе в функцию в местах, которые еще не были достигнуты, так и в модулях, которые еще не были загружены, создавая их как отложенные. Подробная информация по данной теме приведена в документации.
  • Load (загрузка). Приостанавливает программу во время загрузки указанной библиотеки.
  • Watch (наблюдение). Приостанавливает программу, когда изменяется указанный фрагмент оперативной памяти.

Все точки прерывания можно создавать из контекстного меню представления Breakpoints.

Модули

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

Рисунок 6. Представление Modules
Рисунок 6. Представление Modules

Мониторы

Представление Monitors позволяет хранить набор интересующих вас переменных для удобства доступа к ним и их изменения. Если нам, например, нужно контролировать значение конкретной переменной или выражения при каждой остановке приложения, мы можем создать монитор для переменной или выражения, и этот монитор будет виден в представлении Monitors. Это особенно полезно для наблюдения за изменением глобальных переменных в течение сеанса отладки. Можно выполнять мониторинг любого корректного выражения, например, простой локальной переменной или конкретного элемента массива.

В приведенном ниже примере имеется точка прерывания в строке 22 приложения внутри цикла. При любой активизации точки прерывания можно определить, является ли переменная i четной или нечетной.

Рисунок 7. Выражение для мониторинга
Рисунок 7. Выражение для мониторинга

Для этого можно добавить монитор для выражения "(i % 2) == 0". Это можно сделать несколькими способами. В редакторе выделите и щелкните правой кнопкой мыши на выражении, выберите Monitor Expression из всплывающего меню.

Рисунок 8. Монитор в представлении Monitors
Рисунок 8. Монитор в представлении Monitors

После каждого шага значение монитора обновляется, и если оно изменилось, это обозначается для облегчения идентификации. Мониторы можно добавлять и другими способами: можно выполнять мониторинг локальной переменной из представления Variables или из представления Monitors путем нажатии кнопки green plus symbol в представлении Monitors и ввода соответствующего выражения.

Если нужно выполнить мониторинг одной или нескольких глобальных переменных, выберите их из списка всех глобальных переменных, находящихся в области видимости, выбрав пункт Select Globals list в контекстном меню в представлении Monitors. Значение контролируемой переменной можно изменить, и это изменение становится действительным немедленно.

Визуализация и отображение памяти

Представление Memory позволяет контролировать и изменять содержимое памяти по конкретному адресу, обычно адресу переменной. Можно также выбирать, в каком формате будет отображаться содержимое памяти: Hex, ASCII, EBCDIC, signed integer (целое со знаком) и unsigned integer (целое без знака). Выражение, адрес которого используется как основа выражения, называется монитором памяти (memory monitor). Для добавления и удаления мониторов памяти можно использовать панель monitors в представлении Memory. Отметим, что мониторы памяти отличаются от рассмотренных в предыдущем разделе мониторов, использующихся в представлении Monitors.

На рисунке 9 показана визуализация памяти Signed Integer переменной "it". Адрес переменной в памяти - 0x2FF22938, а ее текущее значение равно 10.

Рисунок 9. Мониторинг переменных в представлении Memory
Рисунок 9. Мониторинг переменных в представлении Memory

Содержимое памяти можно просматривать в различных форматах одновременно.

Рисунок 10. Просмотр переменной в виде signed integer и в шестнадцатеричном представлении
Рисунок 10. Просмотр переменной в виде signed integer и в шестнадцатеричном представлении

Полезной функциональностью в представлении Memory является действие Reset to Base Address в контекстном меню. Если вы потеряли начальный адрес визуализации, можно использовать данное действие, чтобы легко перейти в это место.

Отображение памяти

Функциональность отображения памяти (memory mapping) позволяет отображать фрагмент оперативной памяти в соответствии со схемой, определенной в XML-файле. Это полезно, например, если нужно отобразить блоки памяти, определенные вне программы.

Для создания визуализации карты памяти необходимо выбрать файл в файловой системе, определяющий схему, которую вы хотите использовать. Чтобы создать отображение для переменной: выберите переменную или монитор в представлении Variables или Monitors, а также Choose Monitor Memory > Map... в контекстном меню. Затем укажите XML-файл, используемый в качестве схемы для отображения. При этом (a) создастся новый монитор памяти для переменной в представлении Memory, и (б) создастся новая визуализация карты памяти, использующая этот файл.

В простейшем варианте средство отображения памяти позволяет определить схему для сложной переменной, например union (объединение) или structure (структура).

Для структуры:

typedef struct { unsigned short ushort_val; short short_val; unsigned long ulong_val; long long_val; char string_val[12]; char char_val; } _test;

соответствующий файл схемы будет выглядеть следующим образом:

<?xml version="1.0"?> <LAYOUT Header = "My Structure Layout" length = "25" > <FIELD Header="ushort_val" Type="16_BIT_UINT" length = "2"/> <FIELD Header="short_val" Type="16_BIT_INT" length="2"/> <FIELD Header="ulong_val" Type="32_BIT_UINT" length="4" description="this is a sample description for this field"/> <FIELD Header="long_val" Type="32_BIT_INT" length="4"/> <FIELD Header="string_val" Type="ASCII" length="12"/> <FIELD Header="char_val" Type="ASCII" length="1"/> </LAYOUT>

Такой способ полезнее, чем любые другие типы визуализации, поскольку он позволяет контролировать логическую организацию памяти. Каждое поле (field) определяет именованную область памяти длиной в 1 или несколько байт с необязательным текстовым описанием, имеющим смысл в контексте программы. Атрибут type используется для указания способа визуализации памяти, например HEX, Decimal, ASCII и т.д. Дополнительным преимуществом является то, что содержимое памяти можно отобразить рядом с исходными данными, представленными в виде столбцов.

Ниже показан снимок экрана с визуализацией памяти для экземпляра данной структуры, использующей приведенный выше XML-файл.

Рисунок 11. Карта памяти, отображенная в представлении Memory
Рисунок 11. Карта памяти, отображенная в представлении Memory

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

В столбце Value для каждого поля отображается содержимое памяти по данному смещению. В столбце Offset отображается смещение каждого поля от начального адреса отображения. В столбце Description отображается предоставленная пользователем информация о каждом поле. Этот столбец полезен для добавления дополнительной информации об интересующих вас участках блока, особенно при совместном использовании карт разными разработчиками. Описание можно изменить при визуализации, и новое описание можно при желании автоматически сохранить в соответствующем XML-файле. Для реализации этой функциональности откройте страницу Memory map preferences из меню представления Memory и отметьте флажок When editing groups and descriptions always save the changes to the file (при редактировании групп и описаний всегда сохранять изменения в файле).

Для упрощения идентификации при визуализации памяти используются цветовые индикаторы, выделяющие один или несколько изменившихся байтов. Можно также разместить рядом две различные визуализации для сопоставления, как показано ниже.

Рисунок 12. Изменения в памяти, показанные в нескольких параллельных визуализациях
Рисунок 12. Изменения в памяти, показанные в нескольких параллельных визуализациях

Область слева, отмеченная как "A", представляет собой визуализацию карты памяти для монитора, тогда как область "B" содержит представление этого же участка памяти, интерпретированное как целые числа со знаком. Данная возможность позволяет просматривать логическое размещение блоков памяти, используя карту памяти, а также содержимое памяти до и после структуры.

Средство отображения памяти имеет и другие функциональные возможности, о которых можно узнать более подробно в официальной документации по продукту.

Отображение регистров

Содержимое различных регистров можно контролировать и изменять при помощи представления Registers. Регистры в приложении подразделяются на три группы: General (общие), Floating Point (с плавающей запятой) и Special Purpose (специальные). Регистры специального назначения определяются системой; на экране показаны такие регистры для AIX. Регистр IAR (Instruction Address Register) содержит адрес текущей команды, т.е. команды, которая сейчас должна выполниться. Представление Registers похоже на представление Variables в том, что изменения в регистрах выделяются цветом. Регистры можно добавлять в представление Monitors и контролировать их изменения. Кроме того, в представлении Memory можно контролировать содержимое их памяти.

Рисунок 13. Регистры, доступные в программе, можно просматривать в представлении Registers
Рисунок 13. Регистры, доступные в программе, можно просматривать в представлении Registers

Консоль отладки

Консоль отладки (debug console) позволяет выполнять сеанс отладки в командной строке. Команды можно выдавать непосредственно в механизм отладки и просматривать результат в консоли, что позволяет выполнять интерактивную отладку. Поддерживаемые команды зависят от механизма отладки, и на AIX они могут быть отображены путем ввода команды "help" в консоли отладки.

В AIX можно включить режим "echo", и вводимые команды можно экспортировать и импортировать впоследствии. Это позволяет "зарегистрировать" свои действия в отладчике и сгенерировать сценарий, который можно будет использовать повторно для перевода отлаживаемой программы в нужное состояние. На приведенном ниже снимке экрана столбец справа является панелью списка команд, в которой перечислены все введенные команды, а слева расположена панель хронологии команд, отображающая результаты выполнения введенных команд. Для очистки панелей хронологии команд и списка команд, импорта, экспорта и выполнения списка команд можно использовать кнопки панели инструментов.

Рисунок 14. Консоль отладки
Рисунок 14. Консоль отладки

Отладка нескольких приложений

Независимо от того, как начинается сеанс отладки (из командной строки или из диалогового окна), клиентская часть отладчика может поддерживать любое количество сеансов отладки одновременно. Как упоминалось выше, каждый новый сеанс отладки представляется как цель отладки (debug target) в представлении Debug. Содержимое почти всех других представлений, включая редактор исходных кодов, представления Monitors, Registers, Modules, Variables и Memory, будет обновляться в зависимости от активного сеанса отладки. Изменение выбранной цели отладки в представлении Debug вызывает переключение сеанса и обновление остальных представлений. На следующем снимке экрана показан отладчик с двумя активными сеансами отладки.

Рисунок 15. Несколько сеансов отладки, выполняющихся в одном пользовательском интерфейсе
Рисунок 15. Несколько сеансов отладки, выполняющихся в одном пользовательском интерфейсе

Резюме

Инструментальная программа IBM Debugger поддерживает отладку в едином пользовательском интерфейсе приложений, написанных на разных языках программирования и на разных платформах. Кроме базовой функциональности отладки, такой как пошаговое выполнение и установка точек прерывания, программа предоставляет множество расширенных функций, в том числе отображение памяти, удаленный перезапуск и несколько типов точек прерывания. Для использования этих и других возможностей обратитесь за подробной информацией к документации по IBM Debugger.

 

Получить продукты и технологии

  • Rational Developer for System z. Современные средства разработки приложений для мэйнфреймов.
  • TPF Toolkit. Простая в использовании интегрированная среда разработки TPF-приложений.


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 04.03.2013 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
IBM RATIONAL Quality Manager Quality Professional Authorized User Single Install License + Sw Subscription & Support 12 Months
Rational ClearCase Multisite Floating User License
Rational ClearQuest Floating User License
IBM RATIONAL Clearcase Floating User From Rational Clearcase Lt Floating User Trade Up License + Sw Subscription & Support 12 Months
IBM RATIONAL Clearcase Floating User License + Sw Subscription & Support 12 Months
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
Программирование в AutoCAD
СУБД Oracle "с нуля"
Новости мира 3D-ускорителей
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100