gdb
1. 命令行
编译时要带 -g(-O2 是可以调试的,但会出现一些代码对应不上的情况)(不 -g 只能调汇编)
启动:gdb xxx,然后 b 设置断点,然后 r 运行
set args xxx设置命令行参数
1.1. 查看
l查看源码bt查看函数栈info ...查看info b查看断点info args查看参数info locals查看局部变量
p <var>查看变量p *ptr@10查看指针指向的数组内容(前 10 个)
display <var>每步查看一次变量display /10i $pc显示 pc 寄存器后的 10 条指令
1.2. 断点
b <position>设置断点b line当前文件 + 行号b file:line文件名 + 行号b symbol符号名
tb <position>设置临时端点(只停一次)delete <number>删除第 number 个断点
1.3. 运行
r开始运行n单步运行,不进入函数n <step>运行 step 行s单步运行,进入函数u <position>运行到指定位置finish单步运行,跳出函数c继续运行si运行一条指令q退出
2. vscode
安装微软的 c/c++ 插件
运行和调试,点击创建 launch.json 文件,添加配置,改一下可执行文件路径