【问题标题】:gdb evaluate function in process coregdb 评估进程核心中的函数
【发布时间】:2012-01-17 09:56:22
【问题描述】:

有没有办法在 GDB 的进程核心上下文中执行函数?

动机是运行一个函数,该函数将遍历一棵大树以找到特定节点。我可以手动遍历树,但我想构建一个函数来帮助我分析核心。

因此可以使用函数或“GDB 脚本”在数据树上运行。

【问题讨论】:

标签: c gdb


【解决方案1】:

有没有办法在 GDB 的进程核心上下文中执行函数?

不:你需要一个“活的”劣质进程。

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

您可以使用最新 GDB 版本中内置的 Python scripting 来做到这一点。

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 我知道在正在运行的程序上这将起作用(感谢您的输入)。我的问题是程序已经崩溃,我需要从核心上下文中调用一个函数,而不是正在运行的程序。
    • 嗯...不,太晚了 :( 。唯一的希望是 gdb 脚本,抱歉
    • 当然,如果你能在gdb中捕捉到异常,那么进程还活着,你可以调用你的函数。
    • 我的世界也不例外C :)
    • 哦,对不起!我会说“分段错误”:D
    猜你喜欢
    • 2010-11-24
    • 2014-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多