Topic: debugging techniques
Topic: dynamic code modification
Topic: extensible systems
Topic: monitored statements and events
Topic: monitored variable
| |
Summary
Here's a list of debugger features: breakpoints, traps, monitored variables, postmortem dumps, postmortem traces, online tracing, incremental execution, structured memory dumps, symbolic access to variables, variable modification logs, and procedure execution logs. Full state swap at debugger entry is expensive but it keeps debugger activity independent of the program. (cbb 5/80)
Subtopic: source-level debugging
Quote: a debugger, like a programming environment, should effortlessly show the connections in a program; e.g., the original source of a value [»ungaD4_1997]
| Quote: when debugging, want module on screen with inverse video indicating current statement [»cbb_1980, OK]
| Subtopic: distributed debugger
Quote: use mirrors to avoid problems with Java reflection when debugging remote classes; the Java Debug Interface (JDI) mirrors the remote, virtual machine; e.g., loaded classes, threads, metadata, and values [»bracG10_2004]
| Subtopic: execution control
Quote: for debugging, need explicit control of execution flow and data state [»johnMS3_1982]
| Subtopic: breakpoint
Quote: fast breakpoints discovered by Gill; easily implemented by modifying a compiled program [»kessPB6_1990]
| Quote: fast breakpoints by invoking a closure assembled from the original instruction; requires atomic writes to code [»kessPB6_1990]
| Quote: fast breakpoints 1000x faster than Unix breakpoints; global state is main cost [»kessPB6_1990]
| Quote: use dummy stops to stop machine in between major operations [»turiA3_1951]
| Quote: breakpoint on instruction count useful for watchpoints and quasi-reverse execution (break prior to failure point) [»cargTA10_1987]
| Quote: the 'pause' command invokes a breakpoint when executed
| Quote: a blocking order transfers control from a program to the checking routine [»wilkMV_1951]
| Subtopic: break on exception
Quote: exceptions promote instrumentation; for example, debuggers can break when an exception is thrown [»cwalK_2006]
| Subtopic: world-swap
Quote: Mesa programmers do most of their development inside the world-swap debugger [»sweeRE7_1985]
| Quote: world-swap debugger writes the memory image to disk and swaps in the debugger; clumsy but almost no dependence on the target system [»lampBW10_1983]
| Quote: at a breakpoint, Pilot does a world-swap; gives strong isolation for debugger; can change version, volumes, and microcode [»redeDD2_1980]
| Subtopic: resumption
Quote: at a breakpoint, a user can 'recall' a procedure with new parameters, continue, or 'leave' with a given result [»thimH2_1980]
| Subtopic: watchpoints, notify
Quote: in Magpie debugging, both local and non-local references to a variable use the same debug hook
| QuoteRef: smitDC6_1975 ;;49 Stanford AI lab debugger (raid) continuous display of several memory locations re-executing patched code
| Quote: Quicktran debugger can log modified variables, execution of a region, and subroutine calls [»sammJE_1969, OK]
| Quote: while at a Smalltalk breakpoint (notify window), can display, edit and recompile methods [»teslL8_1981]
| Quote: invoke a Smalltalk breakpoint by sending 'notify' to self with a descriptive message; creates a notify window with the execution stack [»teslL8_1981]
| Quote: while debugging, can click on instance variables of a message's receiver to see their values [»teslL8_1981]
| Quote: at a breakpoint, the entire stack is saved in the notify window; can do anything else before restarting; no modes [»teslL8_1981]
| Subtopic: data breakpoints
Quote: implement data breakpoints by code patching; 42% overhead; use segmented bitmap, reserved registers, loop entry checks, range checks [»wahbR6_1993]
| Subtopic: implementation
Quote: gdb debugger executes one million processor cycles for each trap/resume; context switches and system calls [»bootB6_2000]
| Quote: improved a machine-independent debugger [»hansDR8_1999]
| Quote: Magpie code under test contains debug hooks for activating debugging functions [»deliNM5_1984]
| Quote: Magpie activates a debug hook by modifying its first instruction
| Quote: Modeler provides a procedural interface for access by a symbolic debugger to the module structure of a program [»lampBW6_1983]
| Quote: since V can pass access to a segment, the recipient can control how much gets transmitted and where the data is stored; e.g., for debugger [»cherDR4_1984]
| Subtopic: advising
Quote: advising is adding code for execution at procedure entrance or exit; independent of implementation; used for Interlisp debugging [»johnMS2_1982]
| Subtopic: code->source
Quote: map a runtime error to a source instruction by recompiling the procedure; used in SOAR and TurboPascal [»sampAD11_1986]
| Subtopic: interpreters
Quote: no command language or debugger needed for interactive interpreters
| Quote: in Magpie can edited and debug Pascal code at the same time [»deliNM5_1984]
| Subtopic: examples
QuoteRef: sattEH5_1975 ;; Gives extensive description of debugging system (low overhead) using interrupt driven monitors
| Subtopic: exception invoked
Quote: V's exception server passes an exception to the registered handler for the corresponding process; otherwise invokes debugger [»cherDR4_1984]
| Subtopic: monitor
Quote: Spy allows a user to patch the supervisor program; no wild branches, no loops, short, stores only into statistic memory [»lampBW10_1983]
|
Related Topics
Topic: debugging techniques (23 items)
Topic: dynamic code modification (15 items)
Topic: extensible systems (22 items)
Topic: monitored statements and events (16 items)
Topic: monitored variable (28 items)
|