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 останется чёрный, пока не пойдёт вывод из программы. Теперь можно как обычно устанавливать точки прерывания, просматривать значения переменных и т.д. Вот как выглядит сессия отладки: