]> granicus.if.org Git - python/commitdiff
Sjoerd Mullender writes:
authorGuido van Rossum <guido@python.org>
Wed, 3 Nov 1999 13:10:07 +0000 (13:10 +0000)
committerGuido van Rossum <guido@python.org>
Wed, 3 Nov 1999 13:10:07 +0000 (13:10 +0000)
I regularly find that pdb sets the breakpoint on the wrong line when I
try to set a breakpoint on a function.  This fixes the problem
somewhat.
The real problem is that pdb tries to parse the Python source code to
find the first executable line.  A better way might be to inspect the
code object, or even have a variable in the code object
co_firstexecutablelineno, but that's too much work.

The patch fixes the problem when the first code line after the def
statement contains the start *and* end of a triple-quoted string.  The
code assumed that the end of a triple-quoted string is not on the same
line as the start, and so it would skip to the end of the *next*
triple-quoted string.

Lib/pdb.py

index b897efb6335154f3770fab333496c1509c41f376..63c7c1dd2d7b1b91f99f62a5a4f56c560b7ca930 100755 (executable)
@@ -346,6 +346,9 @@ class Pdb(bdb.Bdb, cmd.Cmd):
                                if len(line) >= 3:
                                        if (line[:3] == '"""'
                                            or line[:3] == "'''"):
+                                               if line[-3:] == line[:3]:
+                                                       # one-line string
+                                                       continue
                                                incomment = line[:3]
                                                continue
                                if line[0] != '#': break