Gdb获取帧的函数名称

时间:2013-09-29 21:13:09

标签: debugging gdb

我正在寻找一种从GDB中的帧信息中获取当前函数名称的方法。那可能吗?如果是,我如何找到为特定帧设置的其他变量?

基本上我使用的是运行bt命令时显示在每行开头的相同名称。

1 个答案:

答案 0 :(得分:3)

使用普通的gdb CLI,这只能很难完成。您必须使用日志记录将“frame”的输出写入文件;然后对文件进行处理以提取名称并将其转换为gdb脚本;然后“获取”生成的脚本。

如果你有一个支持Python的gdb,那么很容易。使用gdb.selected_frame()获取所选帧。然后名称在框架的功能符号中:

name = gdb.selected_frame().name()

如果需要,您可以通过各种方式将其暴露给CLI;但最简单的可能就是把它包装在便利功能中。有关相关信息,请参阅文档。