我正在寻找一种从GDB中的帧信息中获取当前函数名称的方法。那可能吗?如果是,我如何找到为特定帧设置的其他变量?
基本上我使用的是运行bt
命令时显示在每行开头的相同名称。
答案 0 :(得分:3)
使用普通的gdb CLI,这只能很难完成。您必须使用日志记录将“frame”的输出写入文件;然后对文件进行处理以提取名称并将其转换为gdb脚本;然后“获取”生成的脚本。
如果你有一个支持Python的gdb,那么很容易。使用gdb.selected_frame()获取所选帧。然后名称在框架的功能符号中:
name = gdb.selected_frame().name()
如果需要,您可以通过各种方式将其暴露给CLI;但最简单的可能就是把它包装在便利功能中。有关相关信息,请参阅文档。