Linux第十节课 - gdb + 冯诺依曼体系结构

科普:开发流程

一个项目开发:项目经理 + 产品经理 + 程序员 + 测试(可能有)--->(开发团队)

产品经理提出来需求  --->>>  项目经理分配任务 --->  程序员开发  --->>>  测试部门提交--->>>  项目经理发布任务

gdb调试:

假设当前我们有mycode.c文件

#include<stdio.h>

int addTOTop(int top)
{
  int res = 0;
  int i = 1;
  for(;i <= top;i++)
  {
    res += i;
  }
  return res;
}


int main()
{
  printf("debug begin\n");
  int top = 100;
  int sum = addTOTop(top);
  printf("sum:%d\n",sum);
  printf("debug end\n");
  return 0;
}

和对应的makefile文件用来做演示:

mycode:mycode.c
	gcc -o $@ $^ -g
.PHONY:clean
clean:
	rm -rf mycode
gdb mycode

可以查看mycode为名的可执行程序!(此时进入gdb交互模式)

gdb的基本操作: 

  • 输入q可以退出!
  • 输入l / list可以查看该可执行程序的源码!(默认显示十行,如果此时未显示完全,继续按回车即可!)(但是有时候不是从第一行开始显示!如果想要从第一行开始显示,直接l0!)
  • l 1 从第一行开始;l 2 从第二行开始!
  • l 0之后只会默认显示10行;此时gdb会默认记录使用过的代码,因此此时直接回车会默认执行l选项! 
  • l + 函数名可以查看对应函数的代码!例如 ---> l addTOP
  • r   --->表示运行程序!
  • 设置断点:b 19(b+ 行号!)(在第19行处打断点)

1、查看断点的信息

  • info b

    此时可以查看断点信息!

  1. 第一行的Num表示断点的编号
  2. Enb表示是否开启
  3. Address表示断点的地址
  4. What显示断点位于程序的哪个位置

2、删除断点

  • 删除的时候使用d + 断点编号来删除(不能用行号!)
d 1

如果我们设置好断点后将gdb关闭,然后重新打开gdb,此时我们设置的断点会消失!

设置完断点后再使用r运行程序,会自动运行到我们设置的断点处!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一道秘制的小菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值