关于gdb调试

一、代码窗口混乱

以前在用gdb调试的时候,一般用在gdb里面打"-"在上方窗口显示源码,而不是用list显示。但是总遇到个问题,源码窗口里老是出现重叠混乱。也上网搜过,但是一直没找到好办法。这个问题使得我感觉gdb调试效率低,改用codelite。现在公司里编程是在字符界面Redhat开发机上。必须要用gdb调试了。今天在网上搜到了解决办法:gdb里面在窗口列出源码用layout src, 如果窗口混乱了,可以用refresh src刷新。另外还有很多layout 命令。参考资料:http://blog.csdn.net/hiawui/article/details/6173107


二、当断点很多,怎么保存断点,以备下次调试,以免每次重复输入命令

工作中有个服务器程序,调试时要打很多断点。每次调试时都重新打断点很麻烦。有个办法可以简化。把gdb命令都写到一个文件里去,每次调试时就在shell里输入:

gdb -command debug.cmd ./program

然后程序就会自动在第一个断点处停下。比如我在debug.cmd里写:

b  file1.cpp : 10

b  file2.cpp : 100

b  file3.cpp : 150

run

layout src


三、cscope不能自动扫描cpp文件

刚刚用cscope看代码,在vim里面用cs find c name,发些没有匹配。不可能啊,那个函数被好动地方调用了的。google了一下,原来cscope在生成索引的时候默认只扫描.h .c .l等,不会去扫描cpp文件。手册里面有个办法:

find . -name "*.h" -o -name "*.c" -o -name "*.cc"  -o -name "*.cpp" > cscope.files
cscope -bkq -i cscope.files

这样就可以顺利处理cpp文件了。不知道为什么cscope不把cpp加到自动扫描列表里去。还得做这个处理,麻烦。

你可能感兴趣的:(GDB调试)