mirror of
https://github.com/python/cpython.git
synced 2025-08-23 10:16:01 +00:00
#7539: use _saferepr() for printing exceptions from pdb.
This commit is contained in:
parent
c9a5ed04c1
commit
f833a56fd2
2 changed files with 29 additions and 2 deletions
|
@ -237,7 +237,7 @@ class Pdb(bdb.Bdb, cmd.Cmd):
|
||||||
if type(t) == type(''):
|
if type(t) == type(''):
|
||||||
exc_type_name = t
|
exc_type_name = t
|
||||||
else: exc_type_name = t.__name__
|
else: exc_type_name = t.__name__
|
||||||
print >>self.stdout, '***', exc_type_name + ':', v
|
print >>self.stdout, '***', exc_type_name + ':', _saferepr(v)
|
||||||
|
|
||||||
def precmd(self, line):
|
def precmd(self, line):
|
||||||
"""Handle alias expansion and ';;' separator."""
|
"""Handle alias expansion and ';;' separator."""
|
||||||
|
@ -753,7 +753,7 @@ class Pdb(bdb.Bdb, cmd.Cmd):
|
||||||
if isinstance(t, str):
|
if isinstance(t, str):
|
||||||
exc_type_name = t
|
exc_type_name = t
|
||||||
else: exc_type_name = t.__name__
|
else: exc_type_name = t.__name__
|
||||||
print >>self.stdout, '***', exc_type_name + ':', repr(v)
|
print >>self.stdout, '***', exc_type_name + ':', _saferepr(v)
|
||||||
raise
|
raise
|
||||||
|
|
||||||
def do_p(self, arg):
|
def do_p(self, arg):
|
||||||
|
|
|
@ -126,6 +126,33 @@ def test_pdb_skip_modules_with_callback():
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
def test_pdb_unicode_exception():
|
||||||
|
r"""This tests exceptions that cannot be displayed due to Unicode issues.
|
||||||
|
http://bugs.python.org/issue7539
|
||||||
|
|
||||||
|
>>> def test_function():
|
||||||
|
... import pdb; pdb.Pdb().set_trace()
|
||||||
|
... pass
|
||||||
|
|
||||||
|
>>> def raising_function():
|
||||||
|
... raise ValueError(u"\xff")
|
||||||
|
|
||||||
|
>>> with PdbTestInput([
|
||||||
|
... 'raising_function()',
|
||||||
|
... 'p raising_function()',
|
||||||
|
... 'continue',
|
||||||
|
... ]):
|
||||||
|
... test_function()
|
||||||
|
> <doctest test.test_pdb.test_pdb_unicode_exception[0]>(3)test_function()
|
||||||
|
-> pass
|
||||||
|
(Pdb) raising_function()
|
||||||
|
*** ValueError: ValueError(u'\xff',)
|
||||||
|
(Pdb) p raising_function()
|
||||||
|
*** ValueError: ValueError(u'\xff',)
|
||||||
|
(Pdb) continue
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
def test_main():
|
def test_main():
|
||||||
from test import test_pdb
|
from test import test_pdb
|
||||||
test_support.run_doctest(test_pdb, verbosity=True)
|
test_support.run_doctest(test_pdb, verbosity=True)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue