Commits

Anonymous committed 4486862

Untabified and applied Richard Wolff's changes (plus my own reflowing
of some paragraphs).

Comments (0)

Files changed (1)

 
 To use the debugger in its simplest form:
 
-	>>> import pdb
-	>>> pdb.run('<a statement>')
+        >>> import pdb
+        >>> pdb.run('<a statement>')
 
 The debugger's prompt is '(Pdb) '.  This will stop in the first
 function call in <a statement>.
 you can use pdb's post-mortem facility to inspect the contents of the
 traceback:
 
-	>>> <a statement>
-	<exception traceback>
-	>>> import pdb
-	>>> pdb.pm()
+        >>> <a statement>
+        <exception traceback>
+        >>> import pdb
+        >>> pdb.pm()
 
 The commands recognized by the debugger are listed in the next
 section.  Most can be abbreviated as indicated; e.g., h(elp) means
 occurs in such a statement, the exception name is printed but the
 debugger's state is not changed.
 
-The debugger supports aliases, which can save typing.  And aliases
-can have parameters (see the alias help entry) which allows one a
-certain level of adaptability to the context under examination.
+The debugger supports aliases, which can save typing.  And aliases can
+have parameters (see the alias help entry) which allows one a certain
+level of adaptability to the context under examination.
 
-Multiple commands may be entered on a single line, separated by
-semi-colons.  No intelligence is applied to separating the commands;
-the input is split at the first ';', even if it is in the middle of
-a quoted string.
+Multiple commands may be entered on a single line, separated by the
+pair ';;'.  No intelligence is applied to separating the commands; the
+input is split at the first ';;', even if it is in the middle of a
+quoted string.
 
 If a file ".pdbrc" exists in your home directory or in the current
-directory, it is read in and executed as if it had been typed at
-the debugger prompt.  This is particularly useful for aliases.
-If both files exist, the one in the home directory is read first
-and aliases defined there can be overriden by the local file.
+directory, it is read in and executed as if it had been typed at the
+debugger prompt.  This is particularly useful for aliases.  If both
+files exist, the one in the home directory is read first and aliases
+defined there can be overriden by the local file.
 
-Aside from aliases, the debugger is not directly programmable; but
-it is implemented as a class from which you can derive your own
-debugger class, which you can make as fancy as you like.
+Aside from aliases, the debugger is not directly programmable; but it
+is implemented as a class from which you can derive your own debugger
+class, which you can make as fancy as you like.
 
 
 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).
+        Without argument, print the list of available commands.  With
+        a command name as argument, print help about that command
+        (this is currently not implemented).
 
 w(here)
-	Print a stack trace, with the most recent frame at the bottom.
-	An arrow indicates the "current frame", which determines the
-	context of most commands.
+        Print a stack trace, with the most recent frame at the bottom.
+        An arrow indicates the "current frame", which determines the
+        context of most commands.
 
 d(own)
-	Move the current frame one level down in the stack trace
-	(to an older frame).
+        Move the current frame one level down in the stack trace
+        (to an older frame).
 
 u(p)
-	Move the current frame one level up in the stack trace
-	(to a newer frame).
+        Move the current frame one level up in the stack trace
+        (to a newer frame).
 
-b(reak) [ ([filename:]lineno | function) [, "condition"] ]
-	With a filename:line number argument, set a break there.  If
-	filename is omitted, use the current file.  With a function name,
-	set a break at the first executable line of that function.
-	Without argument, list all breaks.  Each breakpoint is assigned
-	a number which is by all the other breakpoint commands refer to it.
+b(reak) [ ([filename:]lineno | function) [, condition] ]
+        With a filename:line number argument, set a break there.  If
+        filename is omitted, use the current file.  With a function
+        name, set a break at the first executable line of that
+        function.  Without argument, list all breaks.  Each breakpoint
+        is assigned a number to which all the other breakpoint
+        commands refer.
 
-	The condition argument, if present, is a string which must
-	evaluate to true in order for the breakpoint to be honored.
+        The condition argument, if present, is a string which must
+        evaluate to true in order for the breakpoint to be honored.
 
-tbreak [ ([filename:]lineno | function) [, "condition"] ]
-	Temporary breakpoint, which is removed automatically when it is
-	first hit.  The arguments are the same as break.
+tbreak [ ([filename:]lineno | function) [, condition] ]
+        Temporary breakpoint, which is removed automatically when it
+        is first hit.  The arguments are the same as break.
 
 cl(ear) [bpnumber [bpnumber ...] ]
-	With a space separated list of breakpoint numbers, clear those
-	breakpoints.  Without argument, clear all breaks (but first
-	ask confirmation).
+        With a space separated list of breakpoint numbers, clear those
+        breakpoints.  Without argument, clear all breaks (but first
+        ask confirmation).
 
 disable bpnumber [bpnumber ...]
-	Disables the breakpoints given as a space separated list of
-	breakpoint numbers.  Disabling a breakpoint means it cannot cause
-	the program to stop execution, but unlike clearing a breakpoint, it
-	remains in the list of breakpoints and can be (re-)enabled.
+        Disables the breakpoints given as a space separated list of
+        breakpoint numbers.  Disabling a breakpoint means it cannot
+        cause the program to stop execution, but unlike clearing a
+        breakpoint, it remains in the list of breakpoints and can be
+        (re-)enabled.
 
 enable bpnumber [bpnumber ...]
-	Enables the breakpoints specified.
+        Enables the breakpoints specified.
 
 ignore bpnumber count
-	Sets the ignore count for the given breakpoint number.  If
-	count is omitted, the ignore count is set to 0.  A breakpoint
-	becomes active when the ignore count is zero.  When non-zero,
-	the count is decremented each time the breakpoint is reached
-	and the breakpoint is not disabled and any associated condition
-	evaluates to true.
+        Sets the ignore count for the given breakpoint number.  If
+        count is omitted, the ignore count is set to 0.  A breakpoint
+        becomes active when the ignore count is zero.  When non-zero,
+        the count is decremented each time the breakpoint is reached
+        and the breakpoint is not disabled and any associated
+        condition evaluates to true.
 
-condition bpnumber str_condition
-	str_condition is a string specifying an expression which
-	must evaluate to true before the breakpoint is honored.
-	If str_condition is absent, any existing condition is removed;
-	i.e., the breakpoint is made unconditional.
+condition bpnumber condition
+        condition is an expression which must evaluate to true before
+        the breakpoint is honored.  If condition is absent, any
+        existing condition is removed; i.e., the breakpoint is made
+        unconditional.
 
 s(tep)
-	Execute the current line, stop at the first possible occasion
-	(either in a function that is called or in the current function).
+        Execute the current line, stop at the first possible occasion
+        (either in a function that is called or in the current function).
 
 n(ext)
-	Continue execution until the next line in the current function
-	is reached or it returns.
+        Continue execution until the next line in the current function
+        is reached or it returns.
 
 r(eturn)
-	Continue execution until the current function returns.
+        Continue execution until the current function returns.
 
 c(ont(inue))
-	Continue execution, only stop when a breakpoint is encountered.
+        Continue execution, only stop when a breakpoint is encountered.
 
 l(ist) [first [,last]]
-	List source code for the current file.
-	Without arguments, list 11 lines around the current line
-	or continue the previous listing.
-	With one argument, list 11 lines starting at that line.
-	With two arguments, list the given range;
-	if the second argument is less than the first, it is a count.
+        List source code for the current file.
+        Without arguments, list 11 lines around the current line
+        or continue the previous listing.
+        With one argument, list 11 lines starting at that line.
+        With two arguments, list the given range;
+        if the second argument is less than the first, it is a count.
 
 a(rgs)
-	Print the argument list of the current function.
+        Print the argument list of the current function.
 
 p expression
-	Print the value of the expression.
+        Print the value of the expression.
 
 (!) statement
-	Execute the (one-line) statement in the context of the current
-	stack frame.  The exclamation point can be omitted unless the
-	first word of the statement resembles a debugger command.
-	To assign to a global variable you must always prefix the
-	command with a 'global' command, e.g.:
-	(Pdb) global list_options; list_options = ['-l']
-	(Pdb)
+        Execute the (one-line) statement in the context of the current
+        stack frame.  The exclamation point can be omitted unless the
+        first word of the statement resembles a debugger command.  To
+        assign to a global variable you must always prefix the command
+        with a 'global' command, e.g.:
+        (Pdb) global list_options; list_options = ['-l']
+        (Pdb)
 
 
 whatis arg
-	 Prints the type of the argument.
+         Prints the type of the argument.
 
 alias [name [command]]
-	Creates an alias called 'name' that executes 'command'.  The command
-	must *not* be enclosed in quotes.  Replaceable parameters can be
-	indicated by %1, %2, and so on, while %* is replaced by all the 
-	parameters.  If no command is given, the current alias for name
-	is shown. If no name is given, all aliases are listed.
+        Creates an alias called 'name' that executes 'command'.  The
+        command must *not* be enclosed in quotes.  Replaceable
+        parameters can be indicated by %1, %2, and so on, while %* is
+        replaced by all the parameters.  If no command is given, the
+        current alias for name is shown. If no name is given, all
+        aliases are listed.
 
-	Aliases may be nested and can contain anything that can be
-	legally typed at the pdb prompt.  Note!  You *can* override
-	internal pdb commands with aliases!  Those internal commands
-	are then hidden until the alias is removed.  Aliasing is recursively
-	applied to the first word of the command line; all other words
-	in the line are left alone.
+        Aliases may be nested and can contain anything that can be
+        legally typed at the pdb prompt.  Note!  You *can* override
+        internal pdb commands with aliases!  Those internal commands
+        are then hidden until the alias is removed.  Aliasing is
+        recursively applied to the first word of the command line; all
+        other words in the line are left alone.
 
-	As an example, here are two useful aliases (especially when placed
-	in the .pdbrc file):
+        As an example, here are two useful aliases (especially when
+        placed in the .pdbrc file):
 
-	#Print instance variables (usage "pi classInst")
-	alias pi for k in %1.__dict__.keys(): print "%1." + k + "=" + %1.__dict__[k]
-	#Print instance variables in self
-	alias ps pi self
-		
+        #Print instance variables (usage "pi classInst")
+        alias pi for k in %1.__dict__.keys(): print "%1.",k,"=",%1.__dict__[k]
+        #Print instance variables in self
+        alias ps pi self
+                
 unalias name
-	Deletes the specified alias.
+        Deletes the specified alias.
 
 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
+        Quit from the debugger.
+        The program being executed is aborted.