今天尝试了下用gdb来调试(输出大法好 )
要注意,对于一个gcc或者是g++直接用 gcc/g++ -o 编译出来的执行程序,是无法直接使用gdb调试的,只有加入-g指令,才会进行包含调试信息的编译。
例:
gcc main.c -o main -g
然后就能使用gdb来进行调试了:
gdb main
或
gdb main --slient //去掉开始的提示信息
然后下面介绍一些简单常用的调试指令:
(gdb) break xxx
(gdb) b xxx 在源代码指定的某一行设置断点,其中 xxx 用于指定具体打断点的位置。
(gdb) run
(gdb) r 执行被调试的程序,其会自动在第一个断点处暂停执行。
(gdb) continue
(gdb) c 当程序在某一断点处停止运行后,使用该指令可以继续执行,直至遇到下一个断点或者程序结束。
(gdb) next
(gdb) n 令程序一行代码一行代码的执行。
(gdb) print xxx
(gdb) p xxx 打印指定变量的值,其中 xxx 指的就是某一变量名。
(gdb) list
(gdb) l 显示源程序代码的内容,包括各行代码所在的行号。
(注:一次只显示几行,要继续显示可以按enter键)
(gdb) quit
(gdb) q 终止调试。
靠上面这些指令几乎就能摆脱输出大法了(不存在的 )
想要更多的了解gdb可以参考下面的网址:
GDB调试C/C++