那里。我为 Python 3.1 编写了一些行为不端的代码。如果它是一些 C 代码,我会gdbserver
先使用,附加到进程(它涉及一个相当复杂的命令行,python 进程在标准输入上接收其输入),启动我最喜欢的 GDB 前端,然后我会准备好弄清楚为什么会出错。
但它是蟒蛇。我刚刚尝试了该pdb
模块,但是当它关闭时我无法中断该过程:我得到了一个“KeyboardInterrupt”(我需要更改命令链的其余部分以便他们试一试set_ptrace
)
我尝试了 winpdb,它产生了奇怪的错误消息
Unhandled Exception (in pyshared/rpdb2.py)
并在我附加到该过程之前要求输入“密码”。它给了我 winpdb 仅适用于 python2 的整体感觉。
我只是尝试gdb __main__.py
附加到正在运行的进程,但可以想象到“格式无法识别”。
我错过的联机帮助页在哪里?
PS:哦,这是一个多线程进程,如果这很重要的话。
一个最小的例子:
import pdb
pdb.set_trace() # press 'c' here to continue
while(True):
print("hi") # hit CTRL+C here ... will just kill the program with python 3.1
print("ooh")