全局变量的当前上下文中没有符号

时间:2014-06-27 16:30:42

标签: debugging variables scope gdb fortran

我是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

的价值

2 个答案:

答案 0 :(得分:1)

NSPECIES是宏可能而不是变量吗?如果是,那么您将需要使用-g3编译您的程序,以便获取二进制文件中包含的宏信息。

答案 1 :(得分:0)

如果命名空间内存在NSPECIES,则需要调用

(gdb) p '<namespace>::NSPECIES'

查看。您可以通过致电

进行检查
(gdb) info variables

列出了在当前上下文中定义的所有变量。如果您想专门检查NSPECIES的存在,甚至可以致电

(gdb) info variables NSPECIES

它将列出所有与该名称匹配的已定义变量。

希望有帮助。