我有2个应用程序生成的核心转储 - > / usr / bin / python和/ usr / bin / app1。 我知道可以通过
分析转储 gdb /path/to/app /path/to/core
但有没有办法在辩论中包含这两个应用程序?
我确实尝试了gdb'/ usr / bin / python / usr / bin / app1'core.xxx,但这看起来不对。
有什么建议吗?
答案 0 :(得分:1)
我认为通过gdb
的单次调用无法实现您想要的效果。但是你可以在不同的终端窗口中运行gdb
两次。我做了不止一次,它运作得很好(当然除了你自己的大脑可能会略微超载)。
gdb
进程只能调试一个程序,只需一个调试进程或(对于事后调试)一个core
文件。
一个给定的core
文件是由一个进程(而不是几个)的异常终止产生的,所以我不明白你的问题。
显然,你的python
执行可能会因你的错误C代码而增加。我建议使用可调试的Python变体,可能是通过安装python3-all-dbg
包或类似的东西,然后在其上使用gdb
。当然,在启用调试的情况下编译插入Python的C代码。也许你违反了Python垃圾收集器的一些不变量。