在linux环境下的c++程序, 编译选项用了-g 但是当调试的时候却出了问题,代码如下:
- {
- string variable2;
- ....
- }
gdb -> file filename-> p variable2
结果出现No symbol "variable2 " in current context的错误。
但是运行结果不受影响。
原因为:
g++编译时局部变量被优化到寄存器里了,此时是无法在内存中查看变量的值的。
尝试过-O0,不起作用,目前还不知道怎么解决。
http://blog.youkuaiyun.com/bruce_wang_janet/article/details/6780014
在Linux环境下使用C++编写程序时,编译选项-g导致局部变量被优化到寄存器中,无法通过gdb进行内存访问。文章详细解释了这一现象并提供了解决方案。
8497

被折叠的 条评论
为什么被折叠?



