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

问题描述 投票:0回答:2

我是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的价值

debugging variables scope gdb fortran
2个回答
1
投票

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


0
投票

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

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

查看它。你可以通过电话查询

(gdb) info variables

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

(gdb) info variables NSPECIES

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

希望能帮助到你。

© www.soinside.com 2019 - 2024. All rights reserved.