Update the documentation. Get rid of the section "how it works"

(which is not very relevant when you're in the debugger :-).
This commit is contained in:
Guido van Rossum 1998-07-20 23:21:21 +00:00
parent b5699c7240
commit f60e8e8108
1 changed files with 18 additions and 60 deletions

View File

@ -46,7 +46,8 @@ Debugger commands
h(elp)
Without argument, print the list of available commands.
With a command name as argument, print help about that command
(this is currently not implemented).
"help pdb" pipes the full documentation file to the $PAGER
"help exec" gives help on the ! command
w(here)
Print a stack trace, with the most recent frame at the bottom.
@ -61,15 +62,25 @@ u(p)
Move the current frame one level up in the stack trace
(to a newer frame).
b(reak) [lineno | function]
b(reak) ([file:]lineno | function) [, "condition"]
With a line number argument, set a break there in the current
file. With a function name, set a break at the entry of that
function. Without argument, list all breaks.
function. Without argument, list all breaks. If a second
argument is present, it is a string specifying an expression
which must evaluate to true before the breakpoint is honored.
The line number may be prefixed with a filename and a colon,
to specify a breakpoint in another file (probably one that
hasn't been loaded yet). The file is searched on sys.path.
cl(ear) [lineno]
With a line number argument, clear that break in the current file.
Without argument, clear all breaks (but first ask confirmation).
The line number may be prefixed with a filename and a colon,
to specify a breakpoint in another file (probably one that
hasn't been loaded yet). The file is searched on sys.path.
s(tep)
Execute the current line, stop at the first possible occasion
(either in a function that is called or in the current function).
@ -111,56 +122,3 @@ p expression
q(uit)
Quit from the debugger.
The program being executed is aborted.
How it works
============
Some changes were made to the interpreter:
- sys.settrace(func) sets the global trace function
- there can also a local trace function (see later)
Trace functions have three arguments: (frame, event, arg)
- frame is the current stack frame
- event is a string: 'call', 'line', 'return' or 'exception'
- arg is dependent on the event type
A trace function should return a new trace function or None.
Class methods are accepted (and most useful!) as trace methods.
The events have the following meaning:
'call': A function is called (or some other code block entered).
The global trace function is called;
arg is the argument list to the function;
the return value specifies the local trace function.
'line': The interpreter is about to execute a new line of code
(sometimes multiple line events on one line exist).
The local trace function is called; arg in None;
the return value specifies the new local trace function.
'return': A function (or other code block) is about to return.
The local trace function is called;
arg is the value that will be returned.
The trace function's return value is ignored.
'exception': An exception has occurred.
The local trace function is called;
arg is a triple (exception, value, traceback);
the return value specifies the new local trace function
Note that as an exception is propagated down the chain of callers, an
'exception' event is generated at each level.
Stack frame objects have the following read-only attributes:
f_code: the code object being executed
f_lineno: the current line number (-1 for 'call' events)
f_back: the stack frame of the caller, or None
f_locals: dictionary containing local name bindings
f_globals: dictionary containing global name bindings
Code objects have the following read-only attributes:
co_code: the code string
co_names: the list of names used by the code
co_consts: the list of (literal) constants used by the code
co_filename: the filename from which the code was compiled