1

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

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

4

1 回答 1

3

使用普通的 gdb CLI 很难做到这一点。您必须使用日志记录将“帧”的输出写入文件;然后对文件进行处理以提取名称并将其转换为 gdb 脚本;然后“来源”生成的脚本。

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

name = gdb.selected_frame().name()

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

于 2013-09-30T14:34:07.383 回答