你的位置:首页 > 软件开发 > 操作系统 > 【Linux网络编程】使用GDB调试程序

【Linux网络编程】使用GDB调试程序

发布时间:2016-06-15 17:00:03
Linux中有一个强大的调试工具GDB(GNU Debugger),可以调试C和C++程序。GDB的主要功能如下:设置断点显示变量的值单步执行运行时修改变量的值路径跟踪,方便跟踪代码线程切换其他的。。。使用GDB的前提是,在编译程序的时候需要加入-g选项,即 gcc -g xxx ...

【Linux网络编程】使用GDB调试程序

Linux中有一个强大的调试工具GDB(GNU Debugger),可以调试C和C++程序。

GDB的主要功能如下:

  1. 设置断点
  2. 显示变量的值
  3. 单步执行
  4. 运行时修改变量的值
  5. 路径跟踪,方便跟踪代码
  6. 线程切换
  7. 其他的。。。

使用GDB的前提是,在编译程序的时候需要加入-g选项,即 gcc -g xxx.c。当设置这个选项的时候,GCC会向程序中加入“楔子”,GDB能够利用这些楔子与程序交互。

 

书上的测试程序一则:

/*文件名:ex02-gdb-01.c*/#include <stdio.h>/* 用于printf*/#include <stdlib.h>/*用于malloc*//* 声明函数sum为static int类型 */static int sum(int value);/* 用于控制输入输出的结构 */struct inout {	int value;	int result;	};int main(int argc, char * argv[]) {	/*申请内存*/	struct inout * io = (struct inout * ) malloc(sizeof(struct inout));	/*判断是否成功*/	if (NULL == io) {		/*失败返回*/		printf("申请内存失败\n");		return -1;	}	/*判断输入参数是否正确*/	if (argc != 2) {		printf("参数输入错误!\n");		return -1;	}	/* 获得输入的参数 */	io -> value = *argv[1] - '0';	/* 对value进行累加求和 */	io -> result = sum(io -> value);	printf("你输入的值为:%d,计算结果为:%d\n", io -> value, io -> result);	return 0;}/* 累加求和函数 */static int sum(int value) {	int result = 0;	int i = 0;	/* 循环计算累加值 */	for (i = 0; i < value; i++) result += (i + 1);	/*返回结果*/	return result;}

原标题:【Linux网络编程】使用GDB调试程序

关键词:linux

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录