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