[Python-Dev] Release manager: pdb bugfix incompatibility

A.M. Kuchling amk at amk.ca
Thu Jul 27 14:41:37 CEST 2006


Bug #1526834: if you do 'b f(' in pdb, the debugger crashes.  This bug
stems from pdb just sticking the string in a regex and compiling it.

 cre = re.compile(r'def\s+%s\s*[(]' % funcname)

A side effect of this is that 'b f()' works to match the function 'f',
because the empty parens are legal regex syntax declaring an empty
group that matches the null string.

It's easy to fix the crash by doing re.escape(funcname).  But this
means that 'b f()' will no longer find the function 'f' -- it will
look for 'f(' followed by another paren, and won't find it.

Should this be fixed by the re.escape(), or should the fix attempt to
keep 'b f()' working?  The pdb documentation doesn't claim that 'b
f()' should work.

--amk


More information about the Python-Dev mailing list