mirror of https://github.com/python/cpython
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.
|
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.
|
* The breakpoint number.
|
||||||
* If it is temporary or not.
|
* 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.
|
* If it must be ignored the next N times.
|
||||||
* The breakpoint hit count.
|
* 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)
|
.. class:: Bdb(skip=None)
|
||||||
|
|
||||||
|
|
23
Lib/bdb.py
23
Lib/bdb.py
|
@ -499,6 +499,9 @@ class Breakpoint:
|
||||||
def bpprint(self, out=None):
|
def bpprint(self, out=None):
|
||||||
if out is None:
|
if out is None:
|
||||||
out = sys.stdout
|
out = sys.stdout
|
||||||
|
print(self.bpformat(), file=out)
|
||||||
|
|
||||||
|
def bpformat(self):
|
||||||
if self.temporary:
|
if self.temporary:
|
||||||
disp = 'del '
|
disp = 'del '
|
||||||
else:
|
else:
|
||||||
|
@ -507,17 +510,19 @@ class Breakpoint:
|
||||||
disp = disp + 'yes '
|
disp = disp + 'yes '
|
||||||
else:
|
else:
|
||||||
disp = disp + 'no '
|
disp = disp + 'no '
|
||||||
print('%-4dbreakpoint %s at %s:%d' % (self.number, disp,
|
ret = '%-4dbreakpoint %s at %s:%d' % (self.number, disp,
|
||||||
self.file, self.line), file=out)
|
self.file, self.line)
|
||||||
if self.cond:
|
if self.cond:
|
||||||
print('\tstop only if %s' % (self.cond,), file=out)
|
ret += '\n\tstop only if %s' % (self.cond,)
|
||||||
if self.ignore:
|
if self.ignore:
|
||||||
print('\tignore next %d hits' % (self.ignore), file=out)
|
ret += '\n\tignore next %d hits' % (self.ignore,)
|
||||||
if (self.hits):
|
if self.hits:
|
||||||
if (self.hits > 1): ss = 's'
|
if self.hits > 1:
|
||||||
else: ss = ''
|
ss = 's'
|
||||||
print(('\tbreakpoint already hit %d time%s' %
|
else:
|
||||||
(self.hits, ss)), file=out)
|
ss = ''
|
||||||
|
ret += '\n\tbreakpoint already hit %d time%s' % (self.hits, ss)
|
||||||
|
return ret
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return 'breakpoint %s at %s:%s' % (self.number, self.file, self.line)
|
return 'breakpoint %s at %s:%s' % (self.number, self.file, self.line)
|
||||||
|
|
Loading…
Reference in New Issue