我是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
答案 0 :(得分:1)
NSPECIES
是宏可能而不是变量吗?如果是,那么您将需要使用-g3
编译您的程序,以便获取二进制文件中包含的宏信息。
答案 1 :(得分:0)
如果命名空间内存在NSPECIES,则需要调用
(gdb) p '<namespace>::NSPECIES'
查看。您可以通过致电
进行检查(gdb) info variables
列出了在当前上下文中定义的所有变量。如果您想专门检查NSPECIES的存在,甚至可以致电
(gdb) info variables NSPECIES
它将列出所有与该名称匹配的已定义变量。
希望有帮助。