我想调试一个正在运行的 python 服务,该服务在我的 Ubuntu 系统中具有线程。我需要附加正在运行的根进程并能够在 python 脚本中放置断点。
完成这项任务的最佳方法是什么?
答案1
pdb
为此,您可以使用 Python 调试器。您可以将其作为模块导入或以交互方式使用它。 2.7 的文档在这里:https://docs.python.org/2/library/pdb.html
答案2
你可以使用我的项目疯狂的。它是一个 python 调试器,允许您附加到正在运行的 python 程序并在当前终端中对其进行调试。它类似于pyrasite
和pyringe
,但支持 python3,不需要 gdb,并用于IPython
调试器(这意味着带有颜色和自动完成功能的 pdb)。
例如,要查看脚本卡在哪里,您可以运行:
madbg attach <pid>
然后在调试器 shell 中输入:
bt