最近都是用gcc+vim写代码,昨天突然写个代码算法出个逻辑bug,因为用了大量递归调用,DEB半天出不来也是醉了,于是 学习一下gdb——之前也是勉强使用过,但是明显感觉不爽阿。。所以这次好好学习,记录一下。 目前我能用到的几个命令: 选择调试文件 <shell>: gdb <file> 或者进入gdb以后,使用 断点 显示断点 (gdb): info break 添加静态断点 (gdb): b[reak] + 行数/函数名 (可以用tab补全) 添加条件断点 条件为真,则在断点处停止 – (gdb): b addr if condition 删除断点 删除编号为1的断点, 如果不加参数,会删除所有断点 – (gdb): delete breakpoint 1 启用/禁用断点 (gdb): disable breakpoint 1 (gdb): enable breakpoint 1 运行 开始运行 (gdb):r 继续 (gdb):c 单步调试 不进入单步执行 – (gdb):n 进入的单步 – (gdb):s[tep 显示变量 以变量为var为例 输出var的值 (gdb):p var 输出上一个求得值 (gdb):p 输出历史记录中值 (gdb):p $[num] 输出变量的类型 (gdb):whatis p 调用函数 (gdb):p add(a, b) 数组 输出a后面的十个元素……

Continue reading