如何在gdb中调试时检查哪个文件是声明的变量?

时间:2013-08-22 09:18:12

标签: c emacs gdb

我正在浏览遍布多个文件的代码。我有一个变量x,我在文件A.c中使用它,并在B.h中声明。我在emacs下使用gdb进行调试。在文件A.c中,我如何检查哪个文件是我声明的变量x?

1 个答案:

答案 0 :(得分:2)

尝试

info variables <variable name>

它是一个正则表达式搜索,因此结果列表可能很长。

更新

由于正则表达式搜索尝试在开始时加^而在结尾加$以获得完全匹配(可能有一些更好的方法,我不是正则表达式的主人)。

info variables ^<variable name>

如果太烦人,请尝试extending GDB commands来执行此操作。

(gdb)define vardef
(gdb)info variables ^$arg0$
(gdb)end

使用

(gdb) vardef <variable name>

您可以添加此扩展程序以启动脚本。

P.S。在变量名称的所有实例中,请删除“&lt;&gt;”