mirror of
https://github.com/python/cpython.git
synced 2025-08-19 00:00:48 +00:00
Merged revisions 83429,83436 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/release27-maint ................ r83429 | georg.brandl | 2010-08-01 21:14:56 +0200 (So, 01 Aug 2010) | 37 lines Merged revisions 83352,83356-83358,83362,83366,83368-83369 via svnmerge from svn+ssh://pythondev@svn.python.org/python/branches/py3k ........ r83352 | georg.brandl | 2010-07-31 20:11:07 +0200 (Sa, 31 Jul 2010) | 1 line #9440: Remove borderline test case that fails based on unpredictable conditions such as compiler flags. ........ r83356 | georg.brandl | 2010-07-31 21:29:15 +0200 (Sa, 31 Jul 2010) | 1 line Remove trailing whitespace. ........ r83357 | georg.brandl | 2010-07-31 21:59:55 +0200 (Sa, 31 Jul 2010) | 1 line #5778: document that sys.version can contain a newline. ........ r83358 | georg.brandl | 2010-07-31 22:05:31 +0200 (Sa, 31 Jul 2010) | 1 line #9442: do not document a specific format for sys.version; rather refer to version_info and the platform module. ........ r83362 | georg.brandl | 2010-07-31 23:12:15 +0200 (Sa, 31 Jul 2010) | 1 line #8910: add a file explaining why Lib/test/data is there. ........ r83366 | georg.brandl | 2010-07-31 23:26:40 +0200 (Sa, 31 Jul 2010) | 1 line There always is a False and True now. ........ r83368 | georg.brandl | 2010-07-31 23:40:15 +0200 (Sa, 31 Jul 2010) | 1 line #7909: the prefixes \\.\ and \\?\ indicate special Windows paths, do not try to manipulate them. See http://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx for details. ........ r83369 | georg.brandl | 2010-07-31 23:41:42 +0200 (Sa, 31 Jul 2010) | 1 line Fix "Berkeley" name. ........ ................ r83436 | georg.brandl | 2010-08-01 21:33:15 +0200 (So, 01 Aug 2010) | 42 lines Merged revisions 83259,83261,83264-83265,83268-83269,83271-83272,83281 via svnmerge from svn+ssh://pythondev@svn.python.org/python/branches/py3k ........ r83259 | georg.brandl | 2010-07-30 09:03:39 +0200 (Fr, 30 Jul 2010) | 1 line Clarification. ........ r83261 | georg.brandl | 2010-07-30 09:21:26 +0200 (Fr, 30 Jul 2010) | 1 line #9230: allow Pdb.checkline() to be called without a current frame, for setting breakpoints before starting debugging. ........ r83264 | georg.brandl | 2010-07-30 10:45:26 +0200 (Fr, 30 Jul 2010) | 1 line Document the "jump" command in pdb.__doc__, and add a version tag for "until X". ........ r83265 | georg.brandl | 2010-07-30 10:54:49 +0200 (Fr, 30 Jul 2010) | 1 line #8015: fix crash when entering an empty line for breakpoint commands. Also restore environment properly when an exception occurs during the definition of commands. ........ r83268 | georg.brandl | 2010-07-30 11:23:23 +0200 (Fr, 30 Jul 2010) | 2 lines Issue #8048: Prevent doctests from failing when sys.displayhook has been reassigned. ........ r83269 | georg.brandl | 2010-07-30 11:43:00 +0200 (Fr, 30 Jul 2010) | 1 line #6719: In pdb, do not stop somewhere in the encodings machinery if the source file to be debugged is in a non-builtin encoding. ........ r83271 | georg.brandl | 2010-07-30 11:59:28 +0200 (Fr, 30 Jul 2010) | 1 line #5727: Restore the ability to use readline when calling into pdb in doctests. ........ r83272 | georg.brandl | 2010-07-30 12:29:19 +0200 (Fr, 30 Jul 2010) | 1 line #5294: Fix the behavior of pdb "continue" command when called in the top-level debugged frame. ........ r83281 | georg.brandl | 2010-07-30 15:36:43 +0200 (Fr, 30 Jul 2010) | 1 line Add myself for pdb. ........ ................
This commit is contained in:
parent
03c1cff576
commit
e64de92f74
11 changed files with 99 additions and 27 deletions
27
Lib/pdb.py
27
Lib/pdb.py
|
@ -171,14 +171,18 @@ class Pdb(bdb.Bdb, cmd.Cmd):
|
|||
|
||||
def user_return(self, frame, return_value):
|
||||
"""This function is called when a return trap is set here."""
|
||||
if self._wait_for_mainpyfile:
|
||||
return
|
||||
frame.f_locals['__return__'] = return_value
|
||||
print >>self.stdout, '--Return--'
|
||||
self.interaction(frame, None)
|
||||
|
||||
def user_exception(self, frame, exc_info):
|
||||
exc_type, exc_value, exc_traceback = exc_info
|
||||
"""This function is called if an exception occurs,
|
||||
but only if we are to stop at or just below this level."""
|
||||
if self._wait_for_mainpyfile:
|
||||
return
|
||||
exc_type, exc_value, exc_traceback = exc_info
|
||||
frame.f_locals['__exception__'] = exc_type, exc_value
|
||||
if type(exc_type) == type(''):
|
||||
exc_type_name = exc_type
|
||||
|
@ -265,8 +269,10 @@ class Pdb(bdb.Bdb, cmd.Cmd):
|
|||
return self.handle_command_def(line)
|
||||
|
||||
def handle_command_def(self,line):
|
||||
""" Handles one command line during command list definition. """
|
||||
"""Handles one command line during command list definition."""
|
||||
cmd, arg, line = self.parseline(line)
|
||||
if not cmd:
|
||||
return
|
||||
if cmd == 'silent':
|
||||
self.commands_silent[self.commands_bnum] = True
|
||||
return # continue to handle other cmd def in the cmd list
|
||||
|
@ -274,7 +280,7 @@ class Pdb(bdb.Bdb, cmd.Cmd):
|
|||
self.cmdqueue = []
|
||||
return 1 # end of cmd list
|
||||
cmdlist = self.commands[self.commands_bnum]
|
||||
if (arg):
|
||||
if arg:
|
||||
cmdlist.append(cmd+' '+arg)
|
||||
else:
|
||||
cmdlist.append(cmd)
|
||||
|
@ -313,9 +319,11 @@ class Pdb(bdb.Bdb, cmd.Cmd):
|
|||
prompt_back = self.prompt
|
||||
self.prompt = '(com) '
|
||||
self.commands_defining = True
|
||||
self.cmdloop()
|
||||
self.commands_defining = False
|
||||
self.prompt = prompt_back
|
||||
try:
|
||||
self.cmdloop()
|
||||
finally:
|
||||
self.commands_defining = False
|
||||
self.prompt = prompt_back
|
||||
|
||||
def do_break(self, arg, temporary = 0):
|
||||
# break [ ([filename:]lineno | function) [, "condition"] ]
|
||||
|
@ -451,7 +459,10 @@ class Pdb(bdb.Bdb, cmd.Cmd):
|
|||
Return `lineno` if it is, 0 if not (e.g. a docstring, comment, blank
|
||||
line or EOF). Warning: testing is not comprehensive.
|
||||
"""
|
||||
line = linecache.getline(filename, lineno, self.curframe.f_globals)
|
||||
# this method should be callable before starting debugging, so default
|
||||
# to "no globals" if there is no current frame
|
||||
globs = self.curframe.f_globals if hasattr(self, 'curframe') else None
|
||||
line = linecache.getline(filename, lineno, globs)
|
||||
if not line:
|
||||
print >>self.stdout, 'End of file'
|
||||
return 0
|
||||
|
@ -1280,7 +1291,7 @@ def main():
|
|||
# changed by the user from the command line. There is a "restart" command which
|
||||
# allows explicit specification of command line arguments.
|
||||
pdb = Pdb()
|
||||
while 1:
|
||||
while True:
|
||||
try:
|
||||
pdb._runscript(mainpyfile)
|
||||
if pdb._user_requested_quit:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue