Отладчик GDB

Львиная часть работы программиста состоит не написании исходных текстов программ, а в их отладке. Для этих целей используются специальная программа, которая так и называется “отладчик” (debugger).

Одним из самых популярных отладчиков является GDB (GNU Debugger), который был написан легендарным Ричардом Столлманом еще в 1988 году.

GDB – это бесплатный кросс-платформенный отладчик, который позволяет отлаживать несколько языков программирования, включая Си, C++, Free Pascal, FreeBASIC, Ada и Фортран.

Основные задачи отладчика следующие:

  • Выполнить программу до точки останова и сделать паузу
  • Дать программисту доступ к текущему состоянию переменных, массивов, структур данных и локальных данных.
  • Выполнять программу пошагово.
  • Задать условия, при которых программа остановится.

Отладчик выдает программисту полную информацию о работе программы: какие функции выполняются и какие данные изменяются.

GDB не имеет своей графической оболочки. Как правило, GDB вызывается из интегрированной среды разработки, чтобы программист мог запускать отладчик сразу из редактора.

В сборке Си-экспресс отладчик GDB уже встроен. Его настройки доступны в меню “Настройки – Debugger…”

 

Для работы отладчика нужно включить режим “Debug”. В этом случае в скомпилированную программу добавляется информация для отладчика.

Для вызова отладчика есть группа меню “Отладка”.

Во время отладки открывается окно Watches, в котором можно видеть значения данных.

Добавить любую переменную в это окно для отслеживания можно щелкнув правой кнопкой мыши на имени переменной.

Отладчик имеет несколько окон, которые дают полную картину программы:

 

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

1. Добавить точку останова по данным:

2. Указать условия для останова:

Когда программа начнет писать в эту переменную, отладчик остановит программу.

 

 

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.