摘要:
今天在用gdb调试C++程序的时候,想用"p i”命令打印出程序的一个局部变量i,却一直提示:No symbol "i" in current context.我愣了下,想到有几种原因可能导致这种情况:1、编译的时候没有加上-g选项,一直编译器没有在可执行程序中加入调试信息;2、编译的时候加上了优化选项,使得编译器把某些变量优化掉了;3、断点加的位置不对,变量超出作用域了。我重新检查了程序以及编译命令,的确是没错的。于是我只能在程序中加了个全局变量gi,然后gdb起来,p gi,发现全局变量却是可以显示的。google了好久都没解决问题,后来再次进入gdb准备尝试 阅读全文