gdb调试


1.用debug的方式编译

 -g

2.打上断点

3.单步调试

  step into   进入函数里面
step over 运行整个函数
step return 跳出当前函数

4.继续运行

5.打印和监控值


下面是栗子:

  #include <stdlib.h>
#include <stdio.h>

static int add(int i) //创建一个函数,循环10次,将传进来的数每次+1
{ for(int k=;k<;k++)
{
i += ;
}
return i;
}

int main(int argc, char const *argv[])
{
int ret;
ret = add(); //调用函数
printf("%d\n",ret);
return ;
}

(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) 调试

  .r(un)         调试
.c(ontinue) 继续
.q(uit) 退出
  .n(ext) --step next
.s(tep) --step into
.f(inish) --退出当前函数
.c(ontinue) --把剩下的执行完

(5) 打印值和监控值

  . w(atch) x 监控x变量
. p(rint) x 把x值打印出来

(6) 神奇的wi --输入wi

最新文章

  1. Tomcat调试笔记
  2. Java五道输出易错题解析(避免小错误)
  3. Source Insight 基本使用(1)-使用Source Insight查看Android Framework 源码
  4. XMLHttpRequest 对象
  5. 一组神奇的 3D Gif 动图
  6. X-SCAN扫描器插件(MYSQL弱口令以及Mongodb未授权)
  7. WPF自定义数字输入框控件
  8. 自定义的string类
  9. 十、装饰(Decorator)模式 --结构模式(Structural Pattern)
  10. Acitivity的一些属性配置
  11. QT工程pro设置实践(with QtCreator)----非弄的像VS一样才顺手?
  12. 封装一个通过class获取元素的方法--我的JS原生库(1)
  13. unix时间戳转换成标准时间(c#)
  14. 高可用Redis(十):Redis原生命令搭建集群
  15. Vue.js的安装及简单使用
  16. 在window系统上安装redis服务-Invalid argument during startup: Failed to open the .conf
  17. Spring 学习笔记(十)渲染 Web 视图 (Apache Tilesa 和 Thymeleaf)
  18. spring 开发 Tars
  19. mybatis源码解析10---StatementHandler解析
  20. Android内核sys_setresuid() Patch提权(CVE-2012-6422)

热门文章

  1. Hibernate课程 初探一对多映射3-3 单向多对一的测试
  2. nopcommerce 3.6网银在线支付插件(源码)
  3. css 引入方式以及css的选择器
  4. iOS开发之Objective-c的AES256加密和解密算法的实现
  5. 易客CRM-3.0.4 (OpenLogic CentOS 6.5)
  6. ansible测试环境
  7. 常用HTML富文本编辑器
  8. Gameplay Classes
  9. 【CCPC-Wannafly Winter Camp Day4 (Div1) F】小小马(分类讨论)
  10. CentOS 5.6怎么安装MongoDB数据库?