千家信息网

gdb调试工具的使用

发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,为了将原来有错的程序,找出问题所在,因修改源代码,输出正确的程序,对于刚学linux的菜鸟来说,使用gdb调试错误的信息再合适不过了,如果你是c语言的高手的话,就不必看下述内容了,因为这仅仅适合菜鸟调
千家信息网最后更新 2025年02月04日gdb调试工具的使用

为了将原来有错的程序,找出问题所在,因修改源代码,输出正确的程序,对于刚学linux的菜鸟来说,使用gdb调试错误的信息再合适不过了,如果你是c语言的高手的话,就不必看下述内容了,因为这仅仅适合菜鸟调试几十行代码使用的工具。

下面我就举例为大家说明怎样使用好gdb调试,找到错误的信息

#include

#include

#include


int display1(char *string);

int display2(char *string);


int main()

{

char string[] = "hallo world";

display1(string);

display2(string);

}


int display1(char *string)

{

printf("The original string is %s\n",string);

}


int diaplay2(char *string1)

{

char *string2;

int size,i;

size = (char *)malloc(size+1);

for(i = 0 ; i < size; i++)

{

string2[size - i] = string[i];

}

string2[size+1] = ' ';

printf("the string after is %s\n",string2);

free(string2);

}

当代码输入后,进行编译使用gcc -g test.c test 然后./a.out 发现结果并不是我们想要的结果,应该出现 一行是hello world 另一行是hallo world的倒叙输出,可是发现第二行却是为空,这个时候我们就可以采用gdb调试来进行错误的查重了。

首先在上述操作命令的基础之上,在终端面板上输入gcc test,进入了gcc调试模式,这时我们可以采用命令l来查看源代码,然后对源代码设置断点b + 行数1,b + 行数2,设置好两个断点之后,查看断点信息我们使用info b命令,然后在运行代码使用r 这时候我们可以采用单步运行的命令n来逐步的进行代码的运行,查看运行的信息,如果这样并不能够查出错误信息的话,我们可以进行对变量查看信息,使用 p + 变量名,这时可以看到变量在此时的运行信息,在上述程序中,我们对string2[0]进行查看信息的时候发现string2[0]并没有值给他,这时string2[0]就会一直为 NULL,故并不会输出结果,找到错误后,退出gdb,使用命令q,重新编辑test.c 改为string2[size - i -1] = string[i];重新编译gcc -g test.c test ./a.out 最后查看运行结果,发现是你想要的结果,好了,简单的gdb调试已经结束了。再见!

信息 运行 命令 结果 代码 错误 变量 断点 源代码 程序 输出 一行 时候 菜鸟 编译 输入 工具 合适 两个 内容 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 服务器开关改电压 kinghpc边缘计算服务器 原子云服务器怎么样 专升本access数据库课程 计算机网络技术爬电线杆触电 过地铁震动服务器产生振动的危害 网御网络安全厂家 中国互联网科技有限公司目标 c用什么软件开发出来的 怎样打印数据库连接池信息 江西施工oa管控软件开发平台 基础数据库操作指令 怎么开启轻量应用服务器 我对网络安全发展前景的展望 东华数据库的运用 全国三级数据库技术考什么 长沙软件开发驻场服务费 建立mysql数据库的用处 天津软件开发服务价钱 燃烧远征5区有哪些服务器 大三分流选择软件开发还是测试 燃火网络技术有限公司 部队网络安全标语有哪些 宝山区无线网络技术创新服务 本机设置服务器 五线谱软件开发 上合峰会网络安全议题 上海黑犇互联网科技有限公司伊杰 沈阳软件开发驻场服务 数据库表字段管理平台
0