- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式Linux应用开发教程用gdb调试程序的bug
计算机工程系实验报告
课程名称: 嵌入式Linux 应用开发教程
实验项目名称: 用gdb调试程序的bug
班级: 姓名: 学号:
实 验 目 的:
通过调试一个有问题的程序,进一步熟练使用vi操作,而且熟练掌握gcc编译命令及gdb的调试命令,通过对有问题程序的跟踪调试,进一步提高发现问题和解决问题的能力。
实 验 环 境:
linux 编译器gcc 调试器gdb vi编辑器
实 验 内 容 及 过 程:
使用vi编辑器,将一下代码输入到名为greet.c的文件中。此代码的原意为输出倒序main函数中定义的字符串,但结果显示没有输出,代码如下所示。
#include studio.h
int display1(char *string);
int display2(char *string);
int main()
{
char string[]= “Embedded Linux”;
display1 (string);
display2 (string);
}
Int display1 (char *string)
{
printf (“The original string is %s \n”, string);
}
Int display2 (char *string1)
{
char *string2;
int size,i;
size = strlen (string1);
string = (char *) malloc (size + 1);
for (i = 0;i size;i++)
{
String2[size - i] =string1[i];
}
String[size+1] = ‘ ’;
printf(“The string afterward is %s\n”,string2);
}
使用gcc编译这段代码,注意要加上“-g”选项以方便之后的调试。
运行生成的可执行文件,观察运行结果。
使用gdb调试程序,通过设置断点,单步跟踪,一步步找出错误所在。
纠正错误,更改源程序并得到正确的结果。
实验过程:
使用 touch 命令创建名为greet.c的文件,并用 vi编辑器将源代码输入保存。
使用gcc编译代码
使用gdb运行可执行文件
执行结果未按预期输出倒序main函数中定义的字符
使用 l 命令查看源代码
通过观察源代码发现display2中输出的string2在第23至26行形成,若输出错误则问题一定在这里生成。
在第27行设置断点,用 p 命令观察在 for循环完成后string2数组各元素中保存数据的情况。
通过观察发现string2数组的第一个元素string2[0]中没有存储数据
在第25行设置断点,使用单步跟踪一步步检查string2数组元素的状况
通过单步跟踪发现数组string2的第一个元素string2[0]还中没有被赋值,循环已经退出。
若将for循环中赋值语句的赋值顺序减一,即可将string2[0]中赋值。
修改后重新编译运行程序
程序按预期成功输出
实 验 结 果 及 分 析:
C语言中,char* 代表 字符指针类型,当其指向一个字符串的第一个元素时,它就可以代表这个字符串了
成 绩:
指导教师
(签名):
您可能关注的文档
最近下载
- Hameg HM5010-5011频谱分析仪维修手册.pdf
- 基于工业机器人的码垛控制系统设计.docx
- 艾赛康A110系列变频器用户手册使用说明.pdf
- 海德格尔 《艺术作品的本原》The Origin of the Work of Art.pdf VIP
- 低空经济行业市场前景及投资研究报告:发展前景广阔,关注产业链投资机会.pdf
- 2024年第五届“红旗杯”班组长综合技能知识大赛考试题库及答案(通用版).docx
- (2023春)教科版六年级科学下册《 探索宇宙》PPT课件.pptx
- DLT 5237-2010-灌浆记录仪技术导则.doc
- 人工智能算力中心项目可行性研究报告写作模板-申批立项.doc
- 家用全自动面条机的设计.doc VIP
文档评论(0)