Topic: debugger

topics > computer science > programming > Group: debugging

debugging techniques
dynamic code modification
extensible systems
monitored statements and events
monitored variable


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 up

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 up

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 up

Quote: for debugging, need explicit control of execution flow and data state [»johnMS3_1982]

Subtopic: breakpoint up

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 up

Quote: exceptions promote instrumentation; for example, debuggers can break when an exception is thrown [»cwalK_2006]

Subtopic: world-swap up

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 up

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 up

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 up

Quote: implement data breakpoints by code patching; 42% overhead; use segmented bitmap, reserved registers, loop entry checks, range checks [»wahbR6_1993]

Subtopic: implementation up

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 up

Quote: advising is adding code for execution at procedure entrance or exit; independent of implementation; used for Interlisp debugging [»johnMS2_1982]

Subtopic: code->source up

Quote: map a runtime error to a source instruction by recompiling the procedure; used in SOAR and TurboPascal [»sampAD11_1986]

Subtopic: interpreters up

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 up

QuoteRef: sattEH5_1975 ;; Gives extensive description of debugging system (low overhead) using interrupt driven monitors

Subtopic: exception invoked up

Quote: V's exception server passes an exception to the registered handler for the corresponding process; otherwise invokes debugger [»cherDR4_1984]

Subtopic: monitor up

Quote: Spy allows a user to patch the supervisor program; no wild branches, no loops, short, stores only into statistic memory

Related Topics up

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)

Updated barberCB 6/05
Copyright © 2002-2008 by C. Bradford Barber. All rights reserved.
Thesa is a trademark of C. Bradford Barber.