Computer Brown cs233 2003 - here is where we write about the super-duper debugger we are writing.


The cs233 newsgroup. (are we using this?)

People:

Cvs root

We now have a cvs repository:

export CVSROOT=/pro/web/web/courses/cs233/cvsroot
cvs checkout ndg

Interfaces

Matt Lease's DebuggerUI [source]

Sebastien Chan-Tin and Cora's SymbolTable [source]

Guillaume Marceau's Engine [source]

Kate Ho's ExprEval [source] and Codeaccess [source]

Nathan Weston's Process control [source]

Assignment #3

Write an API which present the following functionality:
  • read/write
  • breakpoint
  • step (in/out/over/instruction in/ instance over)
  • callback/call our for signals
  • watchpoints (addr, len)
  • call to code with args
  • stops
  • threads
  • multiple executables
  • start/attach/detach

Then, write down an automaton for the states a debugger goes through as you are using it. Think of the tricky corner cases: what does it means to add a breakpoint while the program is running? etc. Consider what to do when multiple event happen at the same time. Remember the first rule of concurrent events: if it can happen, it will.

Assignment #2

How to set breakpoints at the beginning of each function. Guy and Nathan have a solution.

Basic features

breakpoints, conditional, programmatically
print, trace, watch, modify data
source prints
static prints
change pc, per instr, per line, per frame
load, run, kill, attach programs
stop in, over, out
view memory
expression evaluation

Enhanced features

emacs interface, other editors
thread switching, listing, deterministic scheduling
memory checking (purify, valgrind)
static, dynamic analysis
code patching (jump to interpreter?)
ipc-aware
running backward, checkpoints
higher-order events, aspect oriented language
replay of interactive debugging sessions
 
abstraction holes
performance analysis
stochastic asserts, with performance tracking
dynamic access to checkpoint data
printing scrolling logs of graphical objects
make a distinction between the debugging data being logged and its format, so
that the presentation format can be changed without having the re-run the code.

Created: Mon Sep 15 15:25:53 2003