使用gdb分析多个应用程序生成的核心转储



我有一个由两个应用程序生成的核心转储->/usr/bin/python和/usr/bin/app1。我知道可以分析垃圾

    gdb /path/to/app /path/to/core  

但是,有没有办法把这两种应用都包括在争论中呢?

我确实尝试过gdb'/usr/bin/python/usr/bin/app1'core.xxx,但这似乎不对。

有什么建议吗?

我认为单次调用gdb无法实现您想要的目标。但是您可以在不同的终端窗口中运行两次gdb。我不止一次这样做,而且效果很好(当然,除了你自己的大脑可能会稍微过载)。

一个gdb进程只能调试一个程序、一个被调试的进程或(对于死后调试)一个单独的core文件。

给定的core文件是由一个进程(而不是几个进程)的异常终止产生的,所以我不理解你的问题。

显然,在python的某些执行中出现了崩溃,可能是由于错误的C代码而导致的。我建议拥有一个可调试的Python变体,也许可以安装python3-all-dbg包或类似的东西,然后在上面使用gdb。当然,在启用调试的情况下编译插入Python的C代码。也许您违反了Python垃圾收集器的一些不变量。

相关内容

  • 没有找到相关文章

最新更新