如何找到首先使用gdb声明类型和变量的位置

时间:2014-01-09 12:55:08

标签: c debugging gdb

使用gdb调试C代码时,我经常需要找到首次声明事物的位置,无论是类型(结构)还是变量。根据这个答案(GDB: break if variable equal value),在gdb中可能无法实现。这是真的吗?

如果在gdb中无法实现,还有其他策略吗?我经常使用grep,但如果结果太多,则会失败。

1 个答案:

答案 0 :(得分:3)

  

我经常要找到首先声明事物的位置,无论是类型(结构)还是变量。

声明或定义(What is the difference between a definition and a declaration?)?如果已定义,则可以使用以下命令:

检查符号表(https://sourceware.org/gdb/onlinedocs/gdb/Symbols.html#Symbols)(如果使用-g编译):

info types regexp列出了定义类型的所有源文件。

info variables regexp - 打印名称包含正则表达式regexp匹配项的所有变量(局部变量除外)的名称和数据类型。