home *** CD-ROM | disk | FTP | other *** search
-
- Sozobon ADB
- Debugger for Sozobon C on the Atari ST
- Authors: Johann Ruegg and Don Dugger
- This document modified for version 1.3(mj+ach)
- created by Anthony Howe and Michal Jaegermann
-
- Introduction
- ------------
-
- This debugger is designed to be used with the Sozobon C compiler. It
- also can be used with other compilers which can produce symbol tables
- either in an Alcyon format (Alcyon, gcc after small modifications) or
- MWC format (Mark Williams C). It is modeled after the 'adb' command
- on UNIX systems. Thus it is a machine language debugger - not a
- source level debugger. Version 1.3 also supports "GST format", with
- symbols up to 22 characters long, which is optionally produced by
- a new version of gcc linker (-G flag).
-
-
- Differences verses the UNIX adb
- -------------------------------
-
- 1) Szadb can only be used to control a running process - it cannot be
- used to look at executables or core files. Therefore '/' and '?'
- commands both refer to memory. The usage for szadb is
- szadb [options] exec-file [command line for exec-file]
-
- Options are described in 'szadb.doc' writeup. The 'exec-file' is
- Pexec'ed immediately. When using Sozobon C compile with the '-t' flag
- to get symbols in the 'exec-file'. Consult your documentation how to
- get a similar result for other compilers. Symbols are adjusted to
- reflect the relocation of the program.
-
- 2) Expressions handled by szadb are a little simpler
- - no floating point numbers
- - '+', '^' and '"' are not valid values
- - variables within routines are not understood
- - the unary operand '*' fetches 4 bytes, while '@' fetches
- 2 bytes (from memory)
- - the dyadic operator '#' is not supported
-
- 3) There is not concept of a map - all addresses refer to memory.
- Thus the '*' modifier to '/' and '?' is not used and there is no
- '?m' or '/m' command.
-
- 4) The following format characters are not supported
- q Q u U f F C Y
-
- 5) The '/l' command is missing
-
- 6) There is no shell escape '!' command.
-
- 7) The following '$' commands are missing
- $<file $<<file $a $w $v $m
-
- 8) These '$' commands are added
- $p - print the process base page
- $k - print definitions of functions keys
- $k<decimal number in range 1 - 20>
- - execute commands associated with a given function key
-
- 9) Request $d does not allow setting of a current radix (number base)
- to any number. You may choose only between octal, decimal and hex
- using $o, $d and $x respectively.
-
- 10) The following ':' commands are missing
- :r (use :c instead - if arguments to be passed on to the
- debugged program were not passed on a command line
- then put them after the first :c)
- :k (exit the debugger and start over instead)
-
- 11) The following ':' commands are added
- :n - execute next instruction in the program text, do
- not descend to subroutines
- :j - jump over the next intruction if a branch and stop
- afterwards; if not branch then exquivalent to :n
- :f - finish executing instructions in the current subroutine
- and stop after return to a caller.
-
- 12) All breakpoints and stepping commands may have associated command
- lines. There are special form commands ::b, ::s, ::n, ::f
- which turn execution of these stored lines off and on.
-
- 13) There is only a fixed set of four read-only internal variables
-
- 14) Szadb uses its own window so as not to interfere with the program
- being debugged. Use cntl-w to view the program's window. Type any
- character to switch back.
-
- 15) Online help is available if szadb was compiled in that way.
- Use -DHELP in your makefile if you want this feature.
- Help is called by the 'Help' key.
-