我使用gdb从正在运行的python进程中获取堆栈跟踪。 python运行在由pyenv管理的virtualenv上,在Ubuntu 16.4上。
我试过这个:
sudo gdb ~/.pyenv/versions/bla/bin/python -p <PID>
然后我没有可用的扩展名,所以我做了
symbol-file /usr/bin/python3.5-dbg
然后当我运行py-list时,我收到以下错误:
无法找到python字节码解释器的gdb框架。
还尝试过:
sudo gdb /usr/bin/python3.5-dbg -p <PID>
和同样的错误。
还有其他方式吗?还是一种更简单的方法?
答案 0 :(得分:0)
您的虚拟环境中的python版本可能与python dbg软件包不兼容,后者与/ usr / bin /中的python兼容。我已经通过将/ usr / bin中的python复制到虚拟环境并重新运行来解决了这个问题。即使两个python是同一版本,构建日期对于gdb调试似乎也有很大的不同。