[pypy-commit] pypy reverse-debugger: UI tweaks
arigo
pypy.commits at gmail.com
Wed Aug 31 21:22:39 EDT 2016
Author: Armin Rigo <arigo at tunes.org>
Branch: reverse-debugger
Changeset: r86806:abac6184118c
Date: 2016-09-01 02:31 +0100
http://bitbucket.org/pypy/pypy/changeset/abac6184118c/
Log: UI tweaks
diff --git a/pypy/interpreter/reverse_debugging.py b/pypy/interpreter/reverse_debugging.py
--- a/pypy/interpreter/reverse_debugging.py
+++ b/pypy/interpreter/reverse_debugging.py
@@ -643,11 +643,18 @@
try:
lineno = int(name)
except ValueError:
+ if name.endswith('()'):
+ n = len(name) - 2
+ assert n >= 0
+ name = name[:n]
if not valid_identifier(name):
revdb.send_output(
'Note: "%s()" doesn''t look like a function name. '
'Setting breakpoint anyway\n' % name)
add_breakpoint_funcname(name, i)
+ name += '()'
+ if name != original_name:
+ revdb.send_change_breakpoint(i, name)
return
# "number" does the same as ":number"
filename = ''
@@ -656,8 +663,7 @@
try:
lineno = int(name[j+1:])
except ValueError:
- revdb.send_output('"%s": expected a line number after colon\n' % (
- name,))
+ revdb.send_output('expected a line number after colon\n')
revdb.send_change_breakpoint(i)
return
filename = name[:j]
diff --git a/pypy/interpreter/test/test_reverse_debugging.py b/pypy/interpreter/test/test_reverse_debugging.py
--- a/pypy/interpreter/test/test_reverse_debugging.py
+++ b/pypy/interpreter/test/test_reverse_debugging.py
@@ -92,10 +92,13 @@
def test_add_breakpoint():
check_add_breakpoint('', expected_output="Empty breakpoint name\n",
expected_chbkpt='')
- check_add_breakpoint('foo42', expected_funcname="foo42")
+ check_add_breakpoint('foo42', expected_funcname="foo42",
+ expected_chbkpt="foo42()")
+ check_add_breakpoint('foo42()', expected_funcname="foo42")
check_add_breakpoint('foo.bar', expected_funcname="foo.bar",
expected_output='Note: "foo.bar()" doesn''t look like a function name.'
- ' Setting breakpoint anyway\n')
+ ' Setting breakpoint anyway\n',
+ expected_chbkpt="foo.bar()")
check_add_breakpoint('<foo.bar>', expected_funcname="<foo.bar>")
check_add_breakpoint('42', curfilename='abcd',
expected_fileline=('abcd', 42),
@@ -109,5 +112,5 @@
check_add_breakpoint('abcd.py:42',
expected_fileline=('abcd.py', 42))
check_add_breakpoint('42:abc',
- expected_output='"42:abc": expected a line number after colon\n',
+ expected_output='expected a line number after colon\n',
expected_chbkpt='')
diff --git a/rpython/translator/revdb/interact.py b/rpython/translator/revdb/interact.py
--- a/rpython/translator/revdb/interact.py
+++ b/rpython/translator/revdb/interact.py
@@ -417,23 +417,27 @@
print "Break where?"
return
num = self._bp_new(argument, 'B', argument)
+ self.pgroup.update_breakpoints()
b = self.pgroup.edit_breakpoints()
- old = b.num2break[num]
- self.pgroup.update_breakpoints()
- new = b.num2break.get(num)
- if old == new:
- print "Breakpoint %d added" % (num,)
- elif new is None:
+ if num not in b.num2break:
print "Breakpoint not added"
else:
kind, name = self._bp_kind(num)
- print "Breakpoint %d added as: %s" % (num, name)
+ print "Breakpoint %d added: %s" % (num, name)
command_b = command_break
def command_delete(self, argument):
"""Delete a breakpoint/watchpoint"""
- arg = int(argument)
b = self.pgroup.edit_breakpoints()
+ try:
+ arg = int(argument)
+ except ValueError:
+ for arg in b.num2break:
+ if self._bp_kind(arg)[1] == argument:
+ break
+ else:
+ print "No such breakpoint/watchpoint: %s" % (argument,)
+ return
if arg not in b.num2break:
print "No breakpoint/watchpoint number %d" % (arg,)
else:
@@ -443,6 +447,7 @@
b.watchvalues.pop(arg, '')
b.watchuids.pop(arg, '')
print "%s %d deleted: %s" % (kind.capitalize(), arg, name)
+ command_del = command_delete
def command_watch(self, argument):
"""Add a watchpoint (use $NUM in the expression to watch)"""
diff --git a/rpython/translator/revdb/process.py b/rpython/translator/revdb/process.py
--- a/rpython/translator/revdb/process.py
+++ b/rpython/translator/revdb/process.py
@@ -236,7 +236,7 @@
if msg.extra:
b.set_num2break(msg.arg1, 'B', msg.extra)
else:
- del b.set_num2break[msg.arg1]
+ del b.num2break[msg.arg1]
else:
print >> sys.stderr, "unexpected %r" % (msg,)
More information about the pypy-commit
mailing list