GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

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

break LABEL_OR_STATEMENT_NUMBER
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.
finish
Resume debugging after current function returns. Will display function return type and value, if any.
help
Display help.
ignore BREAKPOINT_NUMBER [ COUNT ]
Set (or clear) breakpoint ignore count.
info
Display list of breakpoints and their status.
list [ LABEL_OR_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.
quit
Exit debugger.
run

Restart program (works by saving breakpoints and restarting snobol4). New in version 2.1, some restrictions may apply.
save FILENAME
Save breakpoints to file.
source FILENAME
Read sdb commands from file.
step [ COUNT ]
Single step.
watch VARIABLE
Set watchpoint on a variable (break when value changes).
what EXPRESSION
Display the datatype of expression.
where
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, ie;

        FUNCTION('SDB') SDB()

~/.sdbinit
initial command file, read on startup.
.sdb_history
saved command history
/tmp/sdb_listing.pid
temporary listing file for sdb.sno to read
/tmp/sdb_bkpts.pid
temporary breakpoint save file for "run" command

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

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

Leaves an unprotected listing file of the sources in the /tmp directory (create a protected directory?).

``quit'' and ``run'' commands say program is running even if first line of the program has not yet been executed!

Some fatal errors cannot be trapped, and sdb will be terminated.

March 31, 2022 CSNOBOL4B 2.3.1

Search for    or go to Top of page |  Section 1 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.