gdb调试
1.用debug的方式编译
-g
2.打上断点
3.单步调试
step into 进入函数里面 step over 运行整个函数 step return 跳出当前函数
4.继续运行
5.打印和监控值
下面是栗子:
1 #include <stdlib.h> 2 #include <stdio.h> 3 ? 4 static int add(int i) //创建一个函数,循环10次,将传进来的数每次+1 5 { 6 7 for(int k=0;k<10;k++) 8 { 9 i += 1; 10 } 11 return i; 12 } 13 ? 14 int main(int argc, char const *argv[]) 15 { 16 int ret; 17 ret = add(10); //调用函数 18 printf("%d\n",ret); 19 return 0; 20 }
(1) 编译的时候,带调试编译
gcc test.c -g -o a.out
(2) 用gdb运行
gdb a.out
(3) 打断点
>>1.查看源码
l(ist)
>>2.打断点
b(reak) 函数名 b(reak) 行号 b(reak) 文件名:行号 b(reak) 行号 if条件
>>3.查看断点
info break(i b)
>>4.删除断点
d(elete)
-----------------------------------------------
//1.先用 l 看源码
//2.打断点 //b 7 在第7行打断点 //b add 在函数add打断点
//3.查看断点 i b
//4.删除断点 d <断点号>
(4) 调试
1.r(un) 调试 2.c(ontinue) 继续 3.q(uit) 退出
1.n(ext) --step next 2.s(tep) --step into 3.f(inish) --退出当前函数 4.c(ontinue) --把剩下的执行完
(5) 打印值和监控值
1. w(atch) x 监控x变量 2. p(rint) x 把x值打印出来
(6) 神奇的wi --输入wi
原文地址:https://www.cnblogs.com/kmist/p/10177167.html
时间: 2024-10-26 22:22:56