用GDBdebuggingPython内存

用GDBdebuggingPython内存,第1张

概述用GDBdebuggingPython内存

我们有一个使用OpenSSL的Python绑定的linux应用程序,我怀疑这是导致随机崩溃。 偶尔,我们看到它与消息崩溃:

Python致命错误:已经跟踪GC对象

这看起来或者是库的编程错误,或者是内存损坏的症状。 给定一个核心文件,是否有任何方法可以知道它所执行的Python源代码的最后一行? 或者如果它在GDB中被连接? 我意识到这可能是所有编译的字节码,但我希望有人在那里可能已经处理了这一点。 目前,它正在跟踪模块处于活动状态,我们希望它会再次发生,但可能会持续很长时间。

远程deBUGging器:指定的帐户不存在

如何使用gdb和gdbserver为远程源代码级deBUGging加载共享库符号?

用于windows的开源c ++deBUGging器

我怎样才能使deBUGging器迫使windows线程从睡眠中醒来?

windows:打开小型转储时看不到调用堆栈

在aws elastic beanstalk上部署节点Js web应用 – 显示502个坏的网关Nginx / 1.8.0

我如何检测windows C代码中的GDB?

转储windows进程句柄和关于它们的额外信息

在linux下deBUGging:是否有一个类似tty的循环缓冲区实现?

检查variables何时被修改

是的,你可以做这样的事情:

(gdb) print PyRun_SimpleString("import traceback; traceback.print_stack()") file "<string>",line 1,in <module> file "/var/tmp/foo.py",line 2,in <module> i**2 file "<string>",in <module> $1 = 0

也应该可以使用python gdbinit文件中定义的pystack命令,但它不适用于我。 这里讨论,如果你想看看它。

另外,如果你怀疑内存问题,值得注意的是,如果你准备重新编译它,你可以使用valgrind和python。 这个过程在这里描述。

如果你有mac或sun Box踢,你可以使用dtrace和dtrace编译的python版本来弄清楚当时的应用程序在做什么。 注意:在10.5 python是用dtrace预编译的,这非常好用。

如果你不能使用,那么你可以导入gc并启用调试,然后你可以把它放到一个日志文件中。

要专门回答关于使用GDB进行调试的问题,您可能需要阅读python wiki上的“ 使用GDB进行调试 ”。

如果您使用CDLL在Python中打包C库,并且这是64位的linux,那么很可能是您的CDLL包装配置错误。 CDLL默认为所有平台上的int返回类型(在64位系统上应该是long long),只是希望传递正确的参数。在这种情况下,您可能需要验证CDLL包装器。

除了以上所述之外,还可以通过跟踪模块快速实现adhoc示踪器 。

总结

以上是内存溢出为你收集整理的用GDBdebuggingPython内存全部内容,希望文章能够帮你解决用GDBdebuggingPython内存所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1286077.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存