gdb是什么?它是一个在unix环境下的命令行调试工具。
在mac可用吗?可以,但是设置toolchain的签名,相对比较麻烦,可以看一下这个教程。如果使用mac更加推荐使用docker。
无论是用g++还是clang++编译,如果想要使用gdb调试,都需要在编译的时候加上-g选项。
基本命令:
进入:
gdb 你的可执行程序
设置断点:
b 函数名
,也还有用地址之类的,我们暂时不会用到,先不管运行: run
单行执行:n,这里的单行包括单行的函数;
单行执行:s,相当于step into,如果有函数会进入到函数里面;
打印:
p 变量
,也就是print的意思;继续执行:c,会执行到下一个断点或者到程序结束;
描述某个地址的符号:
info symbol 地址