From: Guido van Rossum Date: Wed, 3 Nov 1999 13:10:07 +0000 (+0000) Subject: Sjoerd Mullender writes: X-Git-Tag: v1.6a1~774 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=19878f58fe9e4273458131eec1c18b96da39dcd1;p=thirdparty%2FPython%2Fcpython.git Sjoerd Mullender writes: 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. --- diff --git a/Lib/pdb.py b/Lib/pdb.py index b897efb63351..63c7c1dd2d7b 100755 --- a/Lib/pdb.py +++ b/Lib/pdb.py @@ -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