在进程核心中使用GDB评估函数

6
有没有一种方法可以在GDB的进程核心上下文中执行函数?
动机是运行一个函数,该函数将遍历大型树以查找特定节点。我可以手动遍历树,但我想构建一个函数来帮助我分析核心。
因此,需要一个函数或“GDB脚本”来运行数据树。

相关问题:(使用漂亮的打印机):c++ - gdb直接函数调用的漂亮打印 - Stack Overflow - user202729
2个回答

4

有没有一种方法可以在GDB的进程核心上下文中执行函数?

没有:你需要一个“活”的下属进程。

我可以手动遍历树,但我想构建一个函数来帮助我分析核心。

您可以使用最近版本的GDB中Python脚本来实现。


2

gdb可以调用C函数。如果您键入p myfunction(...parameters...),gdb将评估表达式并打印返回的值。当然,您正在调试的程序必须停止。


1
我知道在运行程序时这将起作用(感谢您的输入)。我的问题是程序已经崩溃,我需要从核心上下文调用一个函数而不是运行中的程序。 - Hagai
嗯...不行,太晚了:(。唯一的希望是一个gdb脚本,抱歉。 - Giuseppe Guerrini
当然,如果您可以在gdb中捕获异常,进程仍然存活,您可以调用您的函数。 - Giuseppe Guerrini
在我的C世界里没有异常 :) - Hagai
哦,抱歉!我应该说“分段错误”:D - Giuseppe Guerrini

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接