mirror of
https://github.com/python/cpython.git
synced 2025-08-04 17:08:35 +00:00
Merged revisions 86861 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k ........ r86861 | senthil.kumaran | 2010-11-29 19:54:17 +0800 (Mon, 29 Nov 2010) | 5 lines Fix #10561 - Fix pdb behavior. Delete the breakpoints by breakpoint number. Handle multiple breakpoints at same line. Update docs/test. Patch by Xavier de Gaye. ........
This commit is contained in:
parent
a88d2776ef
commit
5170c81662
4 changed files with 123 additions and 6 deletions
14
Lib/bdb.py
14
Lib/bdb.py
|
@ -249,6 +249,12 @@ class Bdb:
|
|||
list.append(lineno)
|
||||
bp = Breakpoint(filename, lineno, temporary, cond, funcname)
|
||||
|
||||
def _prune_breaks(self, filename, lineno):
|
||||
if (filename, lineno) not in Breakpoint.bplist:
|
||||
self.breaks[filename].remove(lineno)
|
||||
if not self.breaks[filename]:
|
||||
del self.breaks[filename]
|
||||
|
||||
def clear_break(self, filename, lineno):
|
||||
filename = self.canonic(filename)
|
||||
if not filename in self.breaks:
|
||||
|
@ -260,10 +266,7 @@ class Bdb:
|
|||
# pair, then remove the breaks entry
|
||||
for bp in Breakpoint.bplist[filename, lineno][:]:
|
||||
bp.deleteMe()
|
||||
if (filename, lineno) not in Breakpoint.bplist:
|
||||
self.breaks[filename].remove(lineno)
|
||||
if not self.breaks[filename]:
|
||||
del self.breaks[filename]
|
||||
self._prune_breaks(filename, lineno)
|
||||
|
||||
def clear_bpbynumber(self, arg):
|
||||
try:
|
||||
|
@ -276,7 +279,8 @@ class Bdb:
|
|||
return 'Breakpoint number (%d) out of range' % number
|
||||
if not bp:
|
||||
return 'Breakpoint (%d) already deleted' % number
|
||||
self.clear_break(bp.file, bp.line)
|
||||
bp.deleteMe()
|
||||
self._prune_breaks(bp.file, bp.line)
|
||||
|
||||
def clear_all_file_breaks(self, filename):
|
||||
filename = self.canonic(filename)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue