mirror of
https://github.com/python/cpython.git
synced 2024-12-03 23:06:43 +08:00
Add Breakpoint.bpformat(), which returns the info usually printed by bpprint(). Necessary for major refactoring of pdb output handling.
This commit is contained in:
parent
6cccb865d1
commit
d2fd4cae8e
@ -50,9 +50,10 @@ The :mod:`bdb` module also defines two classes:
|
||||
Mark the breakpoint as disabled.
|
||||
|
||||
|
||||
.. method:: bpprint(out=None)
|
||||
.. method:: bpformat()
|
||||
|
||||
Print all the information about the breakpoint:
|
||||
Return a string with all the information about the breakpoint, nicely
|
||||
formatted:
|
||||
|
||||
* The breakpoint number.
|
||||
* If it is temporary or not.
|
||||
@ -61,6 +62,13 @@ The :mod:`bdb` module also defines two classes:
|
||||
* If it must be ignored the next N times.
|
||||
* The breakpoint hit count.
|
||||
|
||||
.. versionadded:: 3.2
|
||||
|
||||
.. method:: bpprint(out=None)
|
||||
|
||||
Print the output of :meth:`bpformat` to the file *out*, or if it is
|
||||
``None``, to standard output.
|
||||
|
||||
|
||||
.. class:: Bdb(skip=None)
|
||||
|
||||
|
23
Lib/bdb.py
23
Lib/bdb.py
@ -499,6 +499,9 @@ class Breakpoint:
|
||||
def bpprint(self, out=None):
|
||||
if out is None:
|
||||
out = sys.stdout
|
||||
print(self.bpformat(), file=out)
|
||||
|
||||
def bpformat(self):
|
||||
if self.temporary:
|
||||
disp = 'del '
|
||||
else:
|
||||
@ -507,17 +510,19 @@ class Breakpoint:
|
||||
disp = disp + 'yes '
|
||||
else:
|
||||
disp = disp + 'no '
|
||||
print('%-4dbreakpoint %s at %s:%d' % (self.number, disp,
|
||||
self.file, self.line), file=out)
|
||||
ret = '%-4dbreakpoint %s at %s:%d' % (self.number, disp,
|
||||
self.file, self.line)
|
||||
if self.cond:
|
||||
print('\tstop only if %s' % (self.cond,), file=out)
|
||||
ret += '\n\tstop only if %s' % (self.cond,)
|
||||
if self.ignore:
|
||||
print('\tignore next %d hits' % (self.ignore), file=out)
|
||||
if (self.hits):
|
||||
if (self.hits > 1): ss = 's'
|
||||
else: ss = ''
|
||||
print(('\tbreakpoint already hit %d time%s' %
|
||||
(self.hits, ss)), file=out)
|
||||
ret += '\n\tignore next %d hits' % (self.ignore,)
|
||||
if self.hits:
|
||||
if self.hits > 1:
|
||||
ss = 's'
|
||||
else:
|
||||
ss = ''
|
||||
ret += '\n\tbreakpoint already hit %d time%s' % (self.hits, ss)
|
||||
return ret
|
||||
|
||||
def __str__(self):
|
||||
return 'breakpoint %s at %s:%s' % (self.number, self.file, self.line)
|
||||
|
Loading…
Reference in New Issue
Block a user