Low-Level Debugging with PalmDebugger

The PalmDebugger is an 68K assembly-level command-line debugger. It runs under Mac OS and Windows, and can debug with POSE directly, or with devices via serial or (on Windows only) USB. Figure 7-19 shows it in action.

PalmDebugger in action
Figure 7-19. PalmDebugger in action

There are some things you can do with a low-level debugger that you can’t do with a source-level debugger like CodeWarrior. The most important is you can set breakpoints on operating system routines instead of just on your own code. For example, you can cause a break every time FrmDrawForm is called. To get started with PalmDebugger, choose a connection type: port or POSE, and then initiate the communication.

POSE

PalmDebugger initiates communication with POSE; enter the att command in the Debugger window.

port

Communication with the device must start with the device: enter Shortcut, tap, tap, 1 from the device, which will cause a break into PalmDebugger.

Once you have established a communication you can issue commands. Some of the most useful are:

sc6 (Stack-Crawl A6)

Displays a stack trace, showing the call chain.

atb "OSRoutine" (A-Trap Break)

Sets a break on the given OS routine (e.g., from atb "FrmDrawForm"). Anytime the routine is called (from anywhere, including within the OS itself), execution will stop and the debugger will be entered.

atc (A-Trap Clear)

Clears all A-Trap Breaks.

il (Instruction ...

Get Palm OS Programming, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.