Skip to content

Commit 4d818c1

Browse files
committed
support clear filename:function
1 parent 679b2aa commit 4d818c1

1 file changed

Lines changed: 15 additions & 4 deletions

File tree

Lib/pdb.py

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1675,13 +1675,24 @@ def do_clear(self, arg):
16751675
if ':' in arg:
16761676
# Make sure it works for "clear C:\foo\bar.py:12"
16771677
i = arg.rfind(':')
1678-
filename = arg[:i]
1679-
arg = arg[i+1:]
1678+
filename = arg[:i].rstrip()
1679+
arg = arg[i+1:].lstrip()
1680+
err = None
16801681
try:
16811682
lineno = int(arg)
16821683
except ValueError:
1683-
err = "Invalid line number (%s)" % arg
1684-
else:
1684+
f = self.lookupmodule(filename)
1685+
if not f:
1686+
err = '%r not found from sys.path' % filename
1687+
else:
1688+
filename = f
1689+
func = arg
1690+
find_res = find_function(func, self.canonic(filename))
1691+
if find_res:
1692+
_, filename, lineno = find_res
1693+
else:
1694+
err = "Invalid line number or function name:(%r)" % arg
1695+
if not err:
16851696
bplist = self.get_breaks(filename, lineno)[:]
16861697
err = self.clear_break(filename, lineno)
16871698
if err:

0 commit comments

Comments
 (0)