无法在我的 python C 扩展上启动 dbg
Posted
技术标签:
【中文标题】无法在我的 python C 扩展上启动 dbg【英文标题】:Cannot start dbg on my python C extension 【发布时间】:2018-01-07 20:14:56 【问题描述】:我使用的是安装在 pyenv 中的 python3.6.1。我在我的代码上运行 gdb 时遇到问题。当我运行gdb --args python mycode.py
时,它以错误"/home/vydra/.pyenv/shims/python": not in executable format: File format not recognized
结束
【问题讨论】:
你检查过/home/vydra/.pyenv/shims/python
的内容了吗?它可能是一个运行其他东西的脚本。 gdb 只能调试真正的可执行文件。
是的,这就是问题所在。有什么简单的方法,如何“说服”gdb 运行它?因为它相当复杂,而且从源代码安装 python 会更容易,但我想避免它。 (我的发行版没有提供我需要的 python 版本的包,这就是我使用 pyenv 的原因)
检查/home/vydra/.pyenv/shims/python
中的内容,因为它可能是一个脚本。通过添加 gdb 前缀来更改它运行实际 python exe 的行
【参考方案1】:
正如 Jean-François Fabre 所建议的,pyenv 安装的 python 文件实际上是一个 bash 脚本。你可以很容易地让 gdb 运行这个脚本:
gdb -ex r --args bash python mycode.py
有关其他方法,请参阅此问题:Use GDB to debug a C++ program called from a shell script
【讨论】:
以上是关于无法在我的 python C 扩展上启动 dbg的主要内容,如果未能解决你的问题,请参考以下文章
安装成功但无法在我的 Windows 7 系统上启动 apache 2.4
windows下安装redis以及redis扩展,设置redis为windows自启服务
Composer 安装“PHP 警告:PHP 启动:无法加载动态库 'gd2'”
C#/.Net 启动进程,退出代码为 -2146234327