Отладка приложений в FreeBasic (c помощью Insight, FBDebugger...)
В этой статье я продолжу рассказ об отладке с помощью отладчиков , имеющих GUI интерфейс. Вопрос коснется рассмотрения их интерфейса. Если вам нужно понимание самой отладки, то советую почитать первую статью про отладку с помощью консольного GDB. Принципы ничем не отличаются, разве что с помощью GUI отладчиков это делается более удобно на мой взгляд. Конечно упомяну о плюсах и минусах каждого из отладчиков. А уж вам решать каким инструментом пользоваться.
Начнем с GUI обвески Insight над отладчиком GDB.
Отладчик оставляет неплохое впечатление:
- отладку можно выполнять как с помощью горячих клавиш, так и просто с помощью меню и кнопок тулбара.
- все окна разбиты по категориям и легко доступны с панели тулбара или из меню: удобный просмотр регистров, стека, локальных переменных, массивов и пр.
- есть возможность изучения работы программы с выводом не только исходника, но и ассемблерного листинга, при том можно и того и другого одновременно
- есть небольшие настройки внешнего вида, например шрифт
- имеется панель консольного ввода команд напрямую отладчику GDB
Из минусов:
- Разработка давно застыла , то есть обновлений и исправлений ждать не приходится. А исправлять есть чего. Баги встречаются.
- Не поддерживает строки на русском, равно как и не загружает программу из каталогов , имеющих в пути кириллицу. Хотя сам отладчик GDB не имеет этих минусов
Если посмотреть на интерфейс, то он как говорят интуитивно понятен. Брекпоинты можно раставлять прямо кликая по нужным строкам в окне исходного кода. В окошке окна выбора файлов можно выбрать любой исходный файл, задействованный в проекте. В окошке выбора процедур, как вы понимаете, можно выбрать любую процедуру любого модуля. И окно выбора вида кода позволяет переключать вид исходного кода ASM<->FreeBasic. Выполняемая на данный момент строка как видно из скриншота подсвечивается зеленым цветом. А при установке брекпоинтов, на строке будет виден красный квадратик.
Сами кнопки тулбара подсказывают что каждая делает, но для пущей важности у каждой есть всплывающая подсказка при наведении на нее.
- RUN (начать\перезапустить отладку)
- STEP (переход на следующую выполняемую линию)
- NEXT (переход на следующую выполняемую линию без захода в процедуры)
- FINISH (временная внутренняя точка останова)
- CONTINUE (продолжить до следующей точки останова)
- STEPI (пошаговое выполнение команд, то есть если на строке будет несколько команд, каждая из них будет отдельным шагом в отладке)
- NEXTI (то же что и STEPI , но не заходя в процедуры)
- просмотр регистров
- просмотр памяти
- просмотр стека
- просмотр и добавление всех брекпоинтов на доступ к памяти
- просмотр локальных переменных
- просмотр всех обычных брекпоинтов
- вывод консоли для прямого ввода команд в GDB
- окно поиска слова по исходному коду
- дополнительные функции для вывода информации о стеке
Все имеющиеся кнопки тулбара дублируются в меню и у каждой есть горячая клавиша. Но так же в меню есть еще несколько нужных и значимых вещей , таких как возможность принудительно завершить выполнение программы, просмотр всех потоков, открытия файлов, настройки, печать и пр.
В окнах можно не только лицезреть отлаживаемую информацию, но и изменять ее по своему усмотрению:
На скриншоте как видите при вызове контекстного меню, можно получить значение в любом формате. При вызове подменю Edit , можно редактировать любую переменную. Так же может быть полезна опция Dump Memory для просмотра области памяти , где располагается переменная.
В принципе Insight довольно юзабельный и вполне возможно, что под Linux работает даже без замеченных мною багов. Ведь под Windows его попросту портировали, возможно много чего упустили...
-------------------------------------------------------------
Отладчик FBDebugger (мой выбор)
Возможности отладчика:
В принципе умеет все описанное для Insight , плюс:
- возможность переноса исполняемой линии,
то есть имеется возможность неоднократной прокрутки
какого-либо места в программе - полная настройка внешнего вида
- автоматический переход по линиям по таймеру
- подсветка синтаксиса для кода
- дополнительные плюшки вроде сохранений брекпоинтов при перезагрузке, заметки и пр.)
- проект постоянно совершенствуется и имеет хорошую поддержку автора
Недостатки:
- только под Windows
- просмотр массивов неудобен (у insight лучше)
Поближе познакомиться с интерфейсом этого отладчика онлайн вы можете ЗДЕСЬ. Либо взять его в разделе СКАЧАТЬ в подразделе Файлы справки и манулы. Там хоть и для старой версии (2.58), но для понимания работы с этим инструментом более чем достаточно.
-------------------------------------------------------------
И еще один слабенький по меркам вышеописанных отладчик FBDEBUG, встроенный в редактор FbEdit. Данный отладчик работает только под Windows, умеет делать трассировку, и просматривать значения, на большее он не способен.
В редакторе нет никаких кнопок на тулбаре, связанных с отладкой. Все находится только в меню, ну и конечно можно осуществлять по горячим клавишам. Первые два пункта меню это установка и удаление брекпоинтов. Затем идут три пункта меню запуска\прерывания\остановки отладки. И далее три пункта: шаги по исполняемым линиям\по исполняемым линиям без захода в процедуры\ по брекпоинтам. Последний пункт меню позволяет отключить отладчик. Просмотр переменных осуществляется в всплывающих подсказках при установке курсора мыши на нужную переменную. Так же есть возможность просмотра регистров:
Вот собственно и все по отладке. Удачи!