无法在我的 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

无法在我的 Windows 10 x64 机器上安装 scrapy

Virtualbox虚机无法启动因断电