首先编译文件为调试版本,也就是在编译文件指令的末尾加上 -g。调试版的文件仍然是二进制可执行文件,可以用来运行,可是不是调试版的文件不可以用来调试。
例如 :g++ -o mainmain.cpp -g 编译成调试文件 main 为调试文件
开始调试 输入指令 gdb main
运行后会出现很多奇奇怪怪的东西,不用在意是啥
加断点
在你需要让程序暂停运行的地方加上断点
一般用法:b 文件名:行数 b 文件名:函数名
例如: bmain.cpp:15 bmain.cpp:fun(int)
(文件名和一般函数名用table键补齐,不要自己敲)
运行
r main 如果还有参数,也在这里写 例如: r main 127.0.0.16000 3 run
打印目前运行地方的代码 L (小写) list
运行到下一行,遇到函数不进入函数 n next
运行到下一个断点 c continue
遇到函数,进入函数 s 或者在函数内加断点 step
跳出函数 f finish
输出变量值 p+变量名 printf
线程调试
在多线程启动之后,输入info threads 打印出目前线程的信息和编号。
输入 t 1 切换到线程1 t 2切换到线程2……
退出 q