过去,我经常利用这个机会将 gdb 附加到正在运行的 Python 进程并使用py-*
扩展进行调试。但是,从 Debian Jessie 开始,这不再起作用,而是抛出一个MemoryError
。
重现步骤:
debian/jessie64
创建一个带有box 的Vagrant 机器- 在盒子里
sudo apt-get install gdb python-dbg
- 创建测试文件
echo "raw_input()" > test.py"
并运行python test.py
- 使用 gdb 进行连接
gdb -p <processe's PID>
- 尝试
py-bt
或任何其他py-*
命令
结果是:
(gdb) py-bt
Python Exception <class 'gdb.MemoryError'> Cannot access memory at address 0x12:
Error occurred in Python command: Cannot access memory at address 0x12
... 用作debian/wheezy64
底盒时:
#10 Frame 0xf2faf0, for file test.py, line 1, in <module> ()
raw_input()
有人遇到并解决过这个问题吗?