我正在使用 virtualenv 和 gdb 来调试 Python 应用程序(调用一些我想检查的 C 库)。
系统:
$ virtualenv --version
1.11.4
$ uname -a
Linux virtual-machine 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
$ /usr/bin/python2.7-dbg --version
Python 2.7.6
$ gdb --version
GNU gdb (Ubuntu 7.7-0ubuntu3.1) 7.7
虚拟环境设置:
$ virtualenv -p /usr/bin/python2.7-dbg debugenv
$ source debugenv/bin/activate
测试 gdb Python 扩展命令(失败):
(debugenv)$ gdb --args python
(gdb) py-bt
Undefined command: "py-bt". Try "help".
StackOverflow 上的这个人发布了一个解决方案:
http://stackoverflow.com/questions/22931774/how-to-use-gdb-python-debugging-extension-inside-virtualenv
(debugenv)$ ln -s /usr/lib/debug/usr/bin/python2.7-gdb.py /path/to/debugenv/bin/python2.7-dbg-gdb.py
(debugenv)$ gdb --args python
(gdb) py-bt
Python Exception <class 'gdb.error'> No frame is currently selected.:
Error occurred in Python command: No frame is currently selected.
如果它检测到正在使用 Python 调试可执行文件,我不确定这是否应该在 virtualenv 本身中实现,但这有点烦人/令人困惑,并希望让 virtualenv 团队意识到。
亲爱的,我遇到了同样的问题,谢谢。 如果它不痛,它应该被添加。
我在导入 libpython 并使用 py-bt 时遇到此错误:“Python 命令中发生错误:__init__() 需要 3 个参数(给出 2 个)”
这还是个问题吗?
我遇到了同样的问题:
(gdb) py-list
Undefined command: "py-list"
此问题已自动标记为陈旧,因为它最近没有活动。 如果没有进一步的活动发生,它将被关闭。 如果您想让它保持打开状态,只需添加评论。 感谢你的贡献。
ubuntu 18.10 上的 python3.6-dbg 仍然存在问题
最有用的评论
ubuntu 18.10 上的 python3.6-dbg 仍然存在问题