调试 C++ 中的分段错误从 Python 调用的代码

发布于 2024-12-08 02:15:44 字数 126 浏览 0 评论 0原文

我有一个运行 python 脚本的测试,该脚本调用 C++ 代码,在其中出现段错误并转储核心。我尝试使用 /usr/bin/python2.6 在 GDB 中加载核心文件,但这只是给了我??对于堆栈跟踪中的所有项目。如何调试这个核心文件?

I have a test that runs a python script, which calls into C++ code, where it segfaults and dumps core. I've tried to load the core file in GDB using /usr/bin/python2.6, but this just gives me ?? for all the items in the stack trace. How do I debug this core file?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

乖乖 2024-12-15 02:15:44

您需要编译带有调试符号的Python版本。您可以通过使用 ./configure --with-pydebug 构建 Python 来实现此目的。希望您能够通过这种方式找到错误。

这将在某些方面改变 Python 内部的行为。如果您仍然没有以这种方式得到段错误,您可以尝试运行 ./configure CFLAGS="-O0 -ggdb3" 甚至只是 ./configure CFLAGS=-ggdb3

You need to compile a version of Python with debugging symbols. You can do this by building Python with ./configure --with-pydebug. Hopefully you will be able to find the error that way.

That will change the behavior of Python internally in some ways. If you don't still get the segfault that way, you might try running ./configure CFLAGS="-O0 -ggdb3" or even just ./configure CFLAGS=-ggdb3.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文