summaryrefslogtreecommitdiffstats
path: root/Lib/pdb.py
Commit message (Collapse)AuthorAgeFilesLines
* Bug #1055168: calling pdb.set_trace() calls Bdb.set_trace, which madeJohannes Gijsbers2004-11-071-1/+1
| | | | | | | the debugger enter inside pdb.set_trace. Patch #1061767: make pdb.set_trace enter enter at the stack frame calling pdb.set_trace().
* SF bug #1052503: pdb runcall should accept keyword argumentsRaymond Hettinger2004-10-241-2/+2
|
* Whitespace normalization.Tim Peters2004-10-121-5/+4
|
* Improvements when running pdb as a script.Johannes Gijsbers2004-10-121-16/+81
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bug fixes: * Use fresh copy of globals/locals so the script being debugged can't access the pdb namespace (e.g.: p line_prefix will no longer work). * Remove pdb.py's path from sys.path. Having it in there is normally not a problem, but it could prove irritating when messing with PYTHONPATH or invoking pdb via /usr/bin/pdf. * You can now set a breakpoint on the script being debugged, even if the script doesn't end with a '.py' extension. Also, setting breakpoints with absolute paths now works reliably. Enhancements: * Go directly to the first line of the script. * Enter post-mortem debugging if the script being debugged doesn't catch an exception. * Restart the script being debugged and preserve debugger state when the script being debugged exits. Cleanup: * Moved the __main__ method into a main() function. * Kill the (undocumented, not in __all__) mainmodule/mainpyfile globals, add a mainpyfile attribute to pdb. Thanks Ilya Sandler for the patch!
* Patch #1003640: replace checkline() function parsing with new breakpoint logic:Johannes Gijsbers2004-08-301-41/+10
| | | | | | | | | | | | | 1) When a breakpoint is set via a function name: - the breakpoint gets the lineno of the def statement - a new funcname attribute is attached to the breakpoint 2) bdb.effective() calls new function checkfuncname() to handle: - def statement is executed: don't break. - a first executable line of a function with a breakpoint on the lineno of the def statement is reached: break. This fixes bugs 976878, 926369 and 875404. Thanks Ilya Sandler.
* bug #989672: pdb.doc and the help messages for the help_d and help_u methodsJohannes Gijsbers2004-08-141-2/+2
| | | | | of the pdb.Pdb class gives have been corrected. d(own) goes to a newer frame, u(p) to an older frame, not the other way around.
* Replace backticks with repr() or "%r"Walter Dörwald2004-02-121-8/+8
| | | | From SF patch #852334.
* Whitespace normalization.Tim Peters2003-06-151-1/+1
|
* [Bug #741171] pdb crashes when enabling a non-existing breakpointAndrew M. Kuchling2003-05-221-2/+22
| | | | | | | | | Check the supplied breakpoint number more carefully. (Incompatibility: before this patch, "enable -1" would enable the last breakpoint on the list; now -1 is not a legal ID. Not sure anyone would ever use negative indices...) 2.2 bugfix candidate, assuming making -1 illegal isn't considered a problem.
* Detabified.Guido van Rossum2003-04-091-20/+5
| | | | Removed dead code.
* - New function sys.call_tracing() allows pdb to debug codeGuido van Rossum2003-04-091-0/+33
| | | | | | recursively. - pdb has a new command, "debug", which lets you step through arbitrary code from the debugger's (pdb) prompt.
* Get rid of many apply() calls.Guido van Rossum2003-02-271-1/+1
|
* I believe this fixesMichael W. Hudson2003-01-311-2/+3
| | | | | | [ 669692 ] pdb user_call breakage What an odd interface! I guess I should have read the docstring, though.
* Duh. The do_EOF() implementation was bogus. Make it more likeGuido van Rossum2003-01-131-3/+5
| | | | do_quit() -- but print a blank line first.
* This is Richie Hindle's patchMichael W. Hudson2002-12-171-0/+26
| | | | | | | | [ 643835 ] Set Next Statement for Python debuggers with a few tweaks by me: adding an unsigned or two, mentioning that not all jumps are allowed in the doc for pdb, adding a NEWS item and a note to whatsnew, and AuCTeX doing something cosmetic to libpdb.tex.
* Implement a `pp' command, which is like `p' except that itBarry Warsaw2002-11-051-6/+21
| | | | pretty-prints the value of its expression argument.
* At Jim Fulton's request, increase the maxstring value of _saferepr toGuido van Rossum2002-09-101-1/+7
| | | | | | a more reasonable value. Backport candidate.
* Whitespace normalization.Tim Peters2002-08-231-1/+1
|
* This is my patchMichael W. Hudson2002-08-151-1/+7
| | | | | | | | [ 587993 ] SET_LINENO killer Remove SET_LINENO. Tracing is now supported by inspecting co_lnotab. Many sundry changes to document and adapt to this change.
* Fix SF bug 579701 (Fernando Pérez); an input line consisting of one orGuido van Rossum2002-07-121-8/+8
| | | | | | | more spaces only crashed pdb. While I was at it, cleaned up some style nits (spaces between function and parenthesis, and redundant parentheses in if statement).
* SF 563203. Replaced 'has_key()' with 'in'.Raymond Hettinger2002-06-011-6/+6
|
* Add exit as alias for quit, as the easiest way to address SF bugGuido van Rossum2002-04-151-1/+4
| | | | | | #543674. Bugfix candidate.
* SF bug #131560: pdb imports 'repr', causing name collisionTim Peters2001-02-091-2/+2
|
* String method conversion.Eric S. Raymond2001-02-091-35/+33
|
* a few more __all__ listsSkip Montanaro2001-02-071-0/+3
|
* I've been using gdb a lot lately -- I'm missing 'bt' as a command inGuido van Rossum2001-01-201-1/+4
| | | | pdb (pdb calls it 'where'). Added 'bt' as an alias for 'where'.
* Whitespace normalization.Tim Peters2001-01-151-883/+883
|
* - Don't hardcode Unix filename syntax when opening ~/.pdbrc.Guido van Rossum2001-01-141-4/+4
| | | | - Conform to standard coding style in a few more places.
* Update the code to better reflect recommended style:Fred Drake2000-12-121-2/+3
| | | | | Use != instead of <> since <> is documented as "obsolescent". Use "is" and "is not" when comparing with None or type objects.
* Spelling fixes supplied by Rob W. W. Hooft. All these are fixes in eitherThomas Wouters2000-07-161-1/+1
| | | | | | | | | | comments, docstrings or error messages. I fixed two minor things in test_winreg.py ("didn't" -> "Didn't" and "Didnt" -> "Didn't"). There is a minor style issue involved: Guido seems to have preferred English grammar (behaviour, honour) in a couple places. This patch changes that to American, which is the more prominent style in the source. I prefer English myself, so if English is preferred, I'd be happy to supply a patch myself ;)
* Sjoerd Mullender:Guido van Rossum2000-03-061-15/+21
| | | | | | | When you set a breakpoint on a function with a multi-line argument list, the breakpoint is actually set on the second line of the arguments instead of the first line of the body. This patch fixes that.
* Actually, the previous batch's comment should have been different;Guido van Rossum2000-02-041-1/+1
| | | | | | | | | | *this* set of patches is Ka-Ping's final sweep: The attached patches update the standard library so that all modules have docstrings beginning with one-line summaries. A new docstring was added to formatter. The docstring for os.py was updated to mention nt, os2, ce in addition to posix, dos, mac.
* More trivial comment -> docstring transformations by Ka-Ping Yee,Guido van Rossum2000-02-041-14/+13
| | | | | | | | | | | | | | | | | | who writes: Here is batch 2, as a big collection of CVS context diffs. Along with moving comments into docstrings, i've added a couple of missing docstrings and attempted to make sure more module docstrings begin with a one-line summary. I did not add docstrings to the methods in profile.py for fear of upsetting any careful optimizations there, though i did move class documentation into class docstrings. The convention i'm using is to leave credits/version/copyright type of stuff in # comments, and move the rest of the descriptive stuff about module usage into module docstrings. Hope this is okay.
* Sjoerd Mullender writes:Guido van Rossum1999-11-031-0/+3
| | | | | | | | | | | | | | | | I regularly find that pdb sets the breakpoint on the wrong line when I try to set a breakpoint on a function. This fixes the problem somewhat. The real problem is that pdb tries to parse the Python source code to find the first executable line. A better way might be to inspect the code object, or even have a variable in the code object co_firstexecutablelineno, but that's too much work. The patch fixes the problem when the first code line after the def statement contains the start *and* end of a triple-quoted string. The code assumed that the end of a triple-quoted string is not on the same line as the start, and so it would skip to the end of the *next* triple-quoted string.
* Pdb.lineinfo(): Don't use os.popen('egrep ...') to find the line inBarry Warsaw1999-09-091-8/+23
| | | | | | the file that a function is defined on. Non-portable to Windows and JPython. Instead, new find_function() uses re module on a similar (simple-minded) pattern.
* Get rid of confusing 'global' statement in global code.Guido van Rossum1999-05-031-1/+0
| | | | (Andrew Dalke & kjpylint)
* Improvement of b/w compat note in help text for clear, by Richard Wolff.Guido van Rossum1999-01-281-1/+2
|
* Get rid of do_clear_break / do_clb command -- it is redundant.Guido van Rossum1999-01-271-20/+0
| | | | (It was left in accidentally after a long and arduous 3-way patch session.)
* Change clear syntax to support three alternatives:Guido van Rossum1999-01-251-3/+47
| | | | | | | | | clear clear file:line clear bpno bpno ... Also print the breakpoint data after calling set_break(), because the print statement in set_break() has gone.
* When run as a script, don't pass a fake __main__ dictionary; use theGuido van Rossum1998-10-151-1/+1
| | | | real one.
* Richard Wolff's additional changes; some layout nits, and change theGuido van Rossum1998-09-171-11/+11
| | | | alias delimiter to ';;'.
* Richard Wolff's changes:Guido van Rossum1998-09-111-59/+351
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | pdb.py Uses the Breakpoint class so one can enable/disable breakpoints, set temporary ones, set ignore counts, and conditions. The last can be set using the 'b' command b 243 , i>4 ( b 243,i>4 if you are space adverse) or with the condition command so conditions can be changed for a particular breakpoint. Breakpoints are numbered from 1 on, and if a breakpoint is deleted, the number is not reused. All the breakpoint handling commands refer to breakpoints by number. To be consistent, the clear command does so as well, which is the one change from the original pdb that is not transparent. Thus only the breakpoint command 'b' uses a line number or file:line or method. You can also give b whrandom.random and the method will be searched for along sys.path. This is implemented with an 'egrep' command and so is not as portable as it might be. [ see lineinfo() and lineinfoCmd ] Breakpoints cannot be set at a line that is blank or a '#' comment or starts a triply quoted comment. This is because I would like this behavior in my DDD interface and think it reasonable for pdb as well. It can be removed readily, however as it is all incorporated in the routine checkline(). If one attempts to set a breakpoint at a 'def' line, the breakpoint is automatically moved to the first executable line after the 'def'. This too is in checkline(). do_EOF() returns zero so typing an end-of-file character as a command does nothing. 'quit' does the quitting. The routine defaultFile() is present so as to preserve the current pdb behavior and yet allow me to override it in pydb. There's some code in lineinfo() that is probably mainly useful only for pydb and if you prefer, much up to the comment "Best first guess" could be removed. Keith Davidson provided the code for handling $HOME/.pdbrc and ./.pdbrc, and it has been incorporated. He also provided the alias handling routine. I modified it a bit so it could live nicely in precmd(). He and I have been in contact; he has the new pdb (and pydb) with his code incorporated. He also asked about the possibility of allowing multiple commands on one line, such as step;step or s;s or with an alias such as alias ct tbreak %1 ; continue and since it was so easy, that's in place as well. It's a simple 'split the line at the first ";"' operation and puts the second half in the command queue (self.cmdqueue). This has the unfortunate effect of destroying a line like print "i: "+i+"; j: "+j but either there's a simple way to deal with this, or my attitude will remain that pdb is a debugger, not a compiler/parser/etc. An alias like alias 4s s;;s; will work because the adjacent and trailing ";" act like a <cr> which repeats the last command. Of course, either s;s;s;s or s;;; would be a bit more sensible. The help commands have been updated.
* Feature added by Harri Pasanen (at my suggestion): .py suffix onGuido van Rossum1998-07-221-3/+10
| | | | filename may be omitted.
* Added support for specifying a filename for a breakpoint, roughlyGuido van Rossum1998-07-201-40/+102
| | | | | | | | | | | | | according to an idea by Harri Pasanen (but with different syntax). This affects the 'break' and 'clear' commands and their help functions. Also added a helper method lookupmodule(). Also: - Try to import readline (important when pdb is used from/as a script). - Get rid of reference to ancient __privileged__ magic variable. - Moved all import out of functions to the top. - When used as a script, check that the script file exists.
* A working version of the 'args' command (it prints the current valuesGuido van Rossum1998-02-251-5/+12
| | | | | of the variables known to hold arguments, but that's as close as I can get, and generally it's close enough).
* Use sys.exc_info() where needed.Guido van Rossum1997-09-291-12/+15
|
* No longer need to use codehack -- use co.co_firstlineno instead.Guido van Rossum1997-07-181-2/+1
|
* Support for conditional breakpoints (Jim Fulton, with some changes).Guido van Rossum1997-07-111-7/+22
|
* /usr/local/bin/python -> /usr/bin/env pythonGuido van Rossum1996-11-271-1/+1
|
* Correct sys.path[0] when used stand-aloneGuido van Rossum1996-09-101-3/+6
|