我是GDB的新手,我正在逐步完成一个导致我麻烦的功能。我正在尝试打印全局变量的值(确定控制流)但我得到的是no symbol in current context
。我不知道符号的定义在哪里,但它不应该出现在这里吗?
我正在看的块:
if (present(weights)) then
numWeights = size(weights,1)
> if (numWeights == NSPECIES) then
weightsFull = weights
else
weightsFull = weights(1)
endif
else
weightsFull = 1.0
endif
而我正试图获得NSPECIES
的价值
NSPECIES
有可能是宏而不是变量吗?如果是,那么您将需要使用-g3
编译您的程序,以便获取二进制文件中包含的宏信息。
如果命名空间中存在NSPECIES,则需要调用
(gdb) p '<namespace>::NSPECIES'
查看它。你可以通过电话查询
(gdb) info variables
列出了当前上下文中定义的所有变量。如果你想专门检查NSPECIES的存在,你甚至可以打电话
(gdb) info variables NSPECIES
这将列出与该名称匹配的所有已定义变量。
希望能帮助到你。