错误读取变量:找不到框架基础

时间:2017-01-23 21:29:19

标签: c++ c++11 gcc gdb clion

我正在使用Clion IDe,gcc / g ++& gdb for debugger。

在CMakeList.txt中,我设置了以下编译器选项。 set(CMAKE_CXX_FLAGS -std=c++11 -fopenmp -fPIC -O0 -gdwarf-2 -finline-functions)

我可以在main()中查看变量值,但不能查看任何其他类。它显示了从main直接或嵌套调用的所有方法的错误:

<error reading variable: Could not find the frame base for xxxxclass::xxxMethod> 任何指针都会有所帮助。

1 个答案:

答案 0 :(得分:1)

我看到的几个问题:

  1. 除非您的调试器无法处理较新的矮人修订,否则不要将自己局限于矮人v2(-gdwarf-2)。
  2. 尽可能尝试禁用优化(-O0应正确禁用-finline-functions)。但请注意,较新的矮人版本可以更好地处理和跟踪优化。
  3. 尽可能尝试使您的调试信息详细。选项-g采用可选参数,默认情况下为2,但其最大值可以为3。然后它将解锁一些调试器功能,如调试CPP宏。
  4. 使用-ggdb启用GDB调试信息扩展。
  5. 如果它仍在抱怨,您可能仍需明确使用额外的gcc debugging options。但通常只在调试优化程序时才需要它。
  6. 所以,请再试一次: set(CMAKE_CXX_FLAGS -std=c++11 -fopenmp -fPIC -O0 -g3 -ggdb)