SDB(1)                          CSNOBOL4 Manual                         SDB(1)

       sdb - SNOBOL4 debugger

       sdb [ options ... ] program.sno

       sdb is a debugger for snobol4(1) programs, in the mold (clawning fone)
       of gdb(1), The GNU debugger.  sdb(1) uses readline(3) for command line
       editing/history when available.

           Set a breakpoint.

       bt  Display call stack back trace.

       commands BREAKPOINT_NUMBER
           Add sdb commands to execute (ie; print & continue) to a breakpoint.

       condition BREAKPOINT_NUMBER [ EXPR ]
           If EXPR is supplied, it is used as a predicate to make the
           breakpoint conditional, if no EXPR is supplied, any previous
           condition is removed.

       continue [ COUNT ]
           Continue from breakpoint.  The optional count specifies how many
           times to continue past this breakpoint (sets ignore count).

       delete [ BREAKPOINT_NUMBER ]
           Delete a single breakpoint, or all breakpoints.

       disable [ BREAKPOINT_NUMBER ]
           Temporarily disable a breakpoint, or all breakpoints.

       enable [ BREAKPOINT_NUMBER ]
           Re-enable a breakpoint, or all breakpoints.

           Resume debugging after current function returns.  Will display
           function return type and value, if any.

           Display help.

           Set (or clear) breakpoint ignore count.

           Display list of breakpoints and their status.

       list [ STATEMENT_NUMBER ]
           Display source code.

       next [ COUNT ]
           Single step execution, skipping over function calls.

       print EXPRESSION
           Evaluate expression and print result.  Can be used to call
           functions, or set variables.

           Exit debugger.

       step [ COUNT ]
           Single step.

       watch VARIABLE
           Set watchpoint on a variable (break when value changes).

           Display the datatype of variable contents (or expression).

           An alias for bt.

       A blank line repeats the previous command.

       Non-ambiguous abbreviations of commands can be used (ie; s, n).

       The GNU Readline library (when available) will be used for sdb(1) input
       for command editing and history.

       The keyboard interrupt character (eg; Control-C) will stop a running
       program and return control to the sdb(1) command prompt.

       If your program calls the SDB() function, it will act as a breakpoint.
       You can check whether sdb(1) is loaded with the FUNCTION() predicate,

                   FUNCTION('SDB') SDB()

       snobol4(1), gdb(1), readline(3), snobol4readline(3)

       Philip L. Budne

       Inspired by Fred Weigel's DDT.SNO and SITBOL's SNODDT.

       sdb(1) uses a wide variety of system facilities and will interact
       poorly with any programs that use any number of features, including:

       ·      Altering listing settings with directive/control lines.

       ·      Altering &STLIMIT, &ERRLIMIT, or &TRACE.

       ·      Calling SETEXIT()

       If you try to put a breakpoint on a label or line with no code or goto
       fields, the breakpoint will never be triggered.

       You cannot put a breakpoint on the END label (however control always
       returns to sdb when the END label is reached).

       There is no “run” command; you cannot restart the program without
       quitting and losing breakpoint settings.

       Interrupt character trapping is in it's infancy, and only occurs at the
       start of a each statement executed.

       The interrupt character is silently ignored when at the sdb command

       sdb does not read an init file (ie; .sdbinit).

CSNOBOL4B 2.0                   January 1, 2015                         SDB(1)