在Python调试器中断在成员函数处

14 投票
1 回答
9041 浏览
提问于 2025-04-16 20:36

这个问题看起来很简单,但我到现在为止搜索了很多都没找到答案:

我第一次使用Python的调试器(pdb),发现大部分命令和使用gdb时很相似,这让我很高兴。

不过,当我想在类JamParserparse()方法里设置一个断点时,我用了这个语句:

(Pdb) b JamParser.parse
*** The specified object 'JamParser.parse' is not a function
or was not found along sys.path.

我尝试了好几种不同的写法,包括:

(Pdb) b jam2dot.py:JamParser.parse

我以为既然我是从命令行启动调试器的,它应该知道文件里的内容。这是个错误的想法吗?

文档上说可以用函数作为参数来设置断点,但没有提供任何语法方面的帮助。那么,我该怎么通过名字为一个成员函数设置断点呢?

1 个回答

27

在调试器中使用名字之前,你需要先导入这些名字。

(Pdb) from jam2dot import JamParser
(Pdb) b JamParser.parse

撰写回答