(这里博主是个初见程序设计一个月的大学牲,个人经验仅供参考,如有错误欢迎指正)
这个问题出现在使用watch命令监视变量a的时候
最最重要的第一个检查!
你的程序有没有在跑?
没有开始跑的时候是不能够开始监视的!
当程序没有在跑的时候,上下文也就没有相关变量信息
这是我这样的菜比初学者容易犯的一个错误
编译选项是否包含-g
-g是为了让你的exe文件包含调试信息,是为了调试而存在的
关于其他优化选项可以参考这篇:http://t.csdn.cn/K04L5
检查GDB版本
GDB 4.8以后的版本可以在GCC编译时,使用-gdwarf-2或者-gdwarf-3选项调试信息格式
从这位大佬的文章里读到:
编译的时候,如果使用了-g选项,GCC4.8及其以上的版本默认使用-gdwarf-4 -fno-debug-types-section选项,也就是使用DWARF4调试信息格式。而这之前的版本只支持DWARF2或者DWARF3。GDB 7.5,Valgrind 3.8.0和elfutils 0.154这些版本及其以上版本的工具默认使用DWARF4调试信息格式。要确保可执行文件调试信息格式与调试工具所支持的是一致的。如果gdb的版本只支持DWARF2或者DWARF3,在使用gcc编译的时候可以使用-gdwarf-2或-gdwarf-3选项来指定调试信息格式,已和gdb保持一致。
使用readelf PROCESS_NAME --debug-dump=info命令可把可执行文件(elf)中的调试信息格式dump出来
————————————————
版权声明:本文为CSDN博主「春日绿野」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/sj_djw/article/details/91958035
目前能想到的就这么多,后面慢慢学吧。。。