Virtualenv: gdb Python 扩展没有正确链接到新的 virtualenv

创建于 2014-08-28  ·  5评论  ·  资料来源: pypa/virtualenv

我正在使用 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 团队意识到。

bug help-wanted

最有用的评论

ubuntu 18.10 上的 python3.6-dbg 仍然存在问题

所有5条评论

亲爱的,我遇到了同样的问题,谢谢。 如果它不痛,它应该被添加。

我在导入 libpython 并使用 py-bt 时遇到此错误:“Python 命令中发生错误:__init__() 需要 3 个参数(给出 2 个)”

这还是个问题吗?

我遇到了同样的问题:

(gdb) py-list
Undefined command: "py-list"

此问题已自动标记为陈旧,因为它最近没有活动。 如果没有进一步的活动发生,它将被关闭。 如果您想让它保持打开状态,只需添加评论。 感谢你的贡献。

ubuntu 18.10 上的 python3.6-dbg 仍然存在问题

此页面是否有帮助?
0 / 5 - 0 等级