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

时间:2012-04-03 13:44:47

标签: gdb coredump

我有2个应用程序生成的核心转储 - > / usr / bin / python和/ usr / bin / app1。 我知道可以通过

分析转储
    gdb /path/to/app /path/to/core  

但有没有办法在辩论中包含这两个应用程序?

我确实尝试了gdb'/ usr / bin / python / usr / bin / app1'core.xxx,但这看起来不对。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

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

gdb进程只能调试一个程序,只需一个调试进程或(对于事后调试)一个core文件。

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

显然,你的python执行可能会因你的错误C代码而增加。我建议使用可调试的Python变体,可能是通过安装python3-all-dbg包或类似的东西,然后在其上使用gdb。当然,在启用调试的情况下编译插入Python的C代码。也许你违反了Python垃圾收集器的一些不变量。