‘GDB.h’ provides macros for generating user specified commands in the output of the ‘nana’ command. They are not included by default in the ‘nana.h’ file. Note that these macros have no effect unless you run your program under the debugger and read in the commands generated by the ‘nana’ command. You also need to compile the program with the ‘-g’ option.
Emit a single line command when running this file through ‘nana’. Note that each line must be passed off separately to the ‘GDB’ macro.
This could be used to set debugger options or to define procedures inside ‘gdb’, e.g.
GDB(define checkstack); GDB( if 0 <= n && n <= 10); GDB( print "stack ok"); GDB( else); GDB( print "stack corrupted"); GDB( end); GDB(end);
Causes a single gdb command to be executed whenever control passes through this line of code. After the user's command is executed control automatically returns to the program.
GDBCALL(set memory_check = 1)
These macros could used for instrumenting code or setting up test harnesses, e.g.
GDB(set $siocall = 0); GDB(set $sioerr = 0); void sio_driver() { GDBCALL(set $siocall++) if(SIO_REQ & 0x010) { GDBCALL(set $sioerr++); ... } }