When debugging in Sun WorkShop, you have access to an extensive range of event management, process control, and data inspection features that allow you to:
Run a program in Quick Mode with the debugger in the background, ready to take over processing when a program is about to core dump
Run, stop, and continue execution
Set breakpoints at lines or in functions; trace program execution line by line across a whole program or within a function; set watchpoints to stop or trace a program if a specified value or expression changes or meets some other condition
Set multiple breakpoints or trace tags in C++ code--in all member functions of the same name across a class, or in all members of a specified class
Save breakpoints for use in subsequent debugging sessions of the same program.
Single-step through program code one line at a time; step over or into function calls; step up and out of a function call arriving at the line of the calling function line after the call
Collect runtime performance data for later analysis by the Sampling Collector, Sampling Analyzer, LoopReport, and LockLint utilities
Use runtime checking to automatically detect memory access errors, memory leaks, and memory block usage
Look up declarations of identifiers and definitions of types, classes, and templates
Spot check the value of variables or expressions whenever the program is stopped; monitor variables or expressions for changes over time; examine the call stack; move up and down the call stack; and call functions in the program
Graphically display program variables including complex structures and arrays, and monitor values during program execution using the data grapher and the Data Display window
Debug multithreaded programs
Use the Fix and Continue feature to edit a file, recompile it with the same options, install the new code in the program, and continue
Support C++ by supporting virtual functions, supporting C++ exceptions, debugging with C++ templates, using function overloading for argument resolution, and using default arguments
Use an embedded Korn shell for programmability (see "Using the Korn Shell" in Debugging a Program With dbx for the differences between ksh-88 and dbx command language)
Use the Program Input/Output window to provide an I/O command interface separate from the dbx interaction in the Dbx Commands window
Follow programs as they fork