在Emacs中调试Python程序

56 投票
3 回答
44212 浏览
提问于 2025-04-15 19:40

我该如何在emacs中调试Python程序呢?我正在使用 python-mode.el

我找到了一些建议:

import pdb; pdb.set_trace();

但我不太确定该怎么用。

3 个回答

20

realgud这个包(可以从MELPA获取)支持PDB(还有很多其他调试工具),并且有一些Emacs的PDB没有的很酷的功能。

我最喜欢的功能是快捷键模式。一旦你开始调试一个程序,你可以直接在源代码窗口里按 nsc 等键,而不需要在PDB的输入框里输入这些命令。它还支持类似Visual Studio的快捷键绑定,比如功能键(f10f11f5 等)。

安装完RealGUD后,你需要运行 M-x load-feature realgud 来加载它,然后可以通过 M-x realgud:pdb 来启动 pdb

22

对我来说,我需要把默认的“pdb”替换成

python -m pdb myscript.py
49

输入 M-x cd 来切换到你想调试的程序所在的文件夹。

接着输入 M-x pdb。系统会提示你输入 Run pdb (like this): pdb。在这里输入你要调试的程序名称,比如 test.py

(Pdb) 提示符下,输入 help 可以了解如何使用 pdb。

另外,你也可以把

import pdb 
pdb.set_trace()

直接放在你的程序里(比如 test.py)。然后输入 M-x shell 来打开一个命令行窗口。当你运行你的程序时,程序会在执行到 pdb.set_trace() 的地方停下来,这样你就可以开始调试了。

撰写回答