O'Reilly logo

Palm OS Programming, 2nd Edition by Neil Rhodes, Julie McKeehan

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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 ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required