Глава 30. Отладчик DDD

m68k-palmos-gdb является версией стандартного GDB, “пропатченного” под Palm, поэтому можно использовать графические оболочки к GDB. Здесь я расскажу про отладку под ddd.

Чтобы программа собралась с отладочной информацией, надо добавить ключ -g в вызове m68k-palmos-gcc. Размер окончательного .prc-файла увеличится мало — добавиться только заглушка, передающая управлению внешнему отладчику на хосте. Вся отладочная информация записывается в объектный модуль, который и надо загружать в отладчик.

Для запуска ddd в качестве frontend к m68k-palmos-gdb надо дать ключ --debugger m68k-palmos-gdb:

ddd --debugger m68k-palmos-gdb

Первым делом стоит загрузить (Ctrl-O) “объектник” с отладочной информацией (тот файл, который указан в опции -o m68k-palmos-gcc). Чтобы стартовать сессию отладки в окне GDB надо дать команду target pilot localhost:6414. По указанному порту POSE общается с отладчиком.

Замечание

Для упрощения, можно создать в ddd кнопку. Для этого надо открыть меню Commands->Edit Buttons и в пункте Console Buttons ввести: target pilot localhost:6414. После этого над окном отладчика появиться кнопка с введённой командой.

Теперь отладчик ждёт, когда на pose запустят программу. При старте в эмуляторе программы, управление немедленно передастся в ddd, и экран POSE останется чёрный, пока не пойдёт вывод из программы. Теперь можно как обычно устанавливать точки прерывания, просматривать значения переменных и т.д. Вот как выглядит сессия отладки:

Рисунок 30.1.