GDB调式工具学习笔记---单步执行和跟踪函数调用

简介

在使用图形化ide进行程序开发时,通常编辑工具都会自带调试功能,可以打断点,一步一步的执行代码并随时查看每个变量的实时数值,但是在进行c和c++开发时,常常是在linux系统下进行,并且是通过vim或vi编辑器,没有图形化的界面,这是gdb调试工具就会派上了用场,它提供了我们日常调试程序时需要的大多功能,本篇文章是作者在阅读《Linux C编程:一站式学习》一书中关于GDB工具使用这一章节的学习笔记。

1.单步执行和跟踪函数调用

1.1 示例程序

首先阅读以下代码,该代码的主要功能是实现数的累加

#include <stdio.h>
int add_range(int low, int hight)
{
   
	int i, sum;
	for(i = low; i <= hight; i++)
	{
   
		sum += i;
	}
	return sum;
}

int main()
{
   
	int res1, res2;
	res1 = add_range(1, 10);
	res2 = add_range(1, 100);
	printf("res1 = %d, res2 = %d\n", res, res2);
	return 0;
	}

以下是书中给出的运行结果

res1 = 55, res2 = 5105

但是,有意思的是,作者亲自运行之后,发现并没有出现原书作者给出的输出结果,作者也知道不会出现,因为变量sum定义之后,没有初始化,书中的结果可能是作者为了将gdb调试专门设置的输出结果吧,不妨碍学习。以下是作者运行程序输出结果

zz@ubuntu:~/Project/gdb_study$ ./demo1
res1 = 21911, res2 = 26961
zz@ubuntu:~/Project/gdb_study$ ./demo1
res1 = 22009, res2 = 27059
zz@ubuntu:~/Project/gdb_study$ ./demo1
res1 = 22012, res2 = 27062
zz@ubuntu:~/Project/gdb_study$ ./demo1
res1 = 22051, res2 = 27101
zz@ubuntu:~/Project/gdb_study$ ./demo1
res1 = 22155, res2 
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值