- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
p1-gcc工具使用
动态调试举例 初次错误定位: 输出有错误 错误定位 重新开始一次调试; 启动gdb; 加载调试程序(./my_app); 查看程序源代码 命令: list 文件名 动态调试举例 (gdb) list my_app.c:1,20 1 #include stdio.h 2 #include greeting.h 3 #define N 10 4 int main(void) 5 { 6 char name[N]; 7 printf(Your Name,Please:); 8 scanf(%s,name); 9 greeting(name); 10 return 0; 11 } (gdb) break 7 BreakPoint 1 at 0x8048384: file my_app.c, line 7. 在程序第7行设置断点 命令: (gdb) break 7 查看源代码 设置断点 提示信息 动态调试举例 错误详细定位 1 (gdb) run 2 Starting program: /home/tom/shell_script/cpp/my_app/my_app 3 Breakpoint 1,main() at my_app.c:7 4 7 printf(Your Name,Please:); 5 (gdb) next 6 8 scanf(%s,name); 7 (gdb) next 8 Your Name,Please:tom 9 9 greeting(name); 启动调试程序 断点激活 步进下一步 动态调试举例 10 (gdb) print name 11 $1 = “tom\000ò·000?? 12 (gdb) step 13 greeting(name=0xbfffdf20 “tom”)at functions/greeting.c:5 14 5 printf(”Hello !\r\n”); 15 (gdb) step 16 Hello ! 17 6 } 18 (gdb) kill 19 Kill the programe being debugged?(y or n)y 20 (gdb) quit 错误详细定位 查看变量值 进入函数内部 步进执行 停止调试 退出gdb 动态调试举例 分析: 11行说明name变量被正确赋值(tom) 13行说明name变量值被正确赋予greeting的参数变量name 16说明打印出现了错误,即错误出现在函数greeting中; 综合分析 错误出现在greeting.c的第5行; 原因: 输出字符串的格式不对; 改正错误 动态调试举例 动态调试总结 主要错误类型: 算法错误; 输入错误; 定位方法: 设置断点; 单步步进执行; 查看变量取值变化; 反复执行,逐步缩小错误范围; 课后习题 1、从文本源代码到可执行文件,gcc可以对哪些步骤进行控制? 2、编一个简单的helloworld程序,利用gcc控制程序生成的四个步骤。 3、简述gcc的用法和常用参数的含义。 4、上机查找gcc利用的库文件和头文件都放在什么路径下? 5、make工具如何使用?Makefile的基本格式是什么? 6、简述gdb的用法和常用命令的含义。 gcc的使用与开发 主要内容 gcc简介 功能 命令 利用gcc编译c程序 利用make工具简化编译过程 make简介 Makefile基本格式 调试 静态调试 动态调试 gdb调试工具的使用 gcc简介 名称: GNU project C and C++ Compiler GNU Compiler Collection 管理与维护 GNU项目 对C/C++编译的控制 预处理(Preprocessing) 编译(Compilation) 汇编(Assembly) 链接(Linking gcc的使用 基本使用格式 $ gcc [ 选项 ] 文件名 常用选项及含义 gcc常用选项 选项 含义 -o file 将经过gcc处理过的结果存为文件file,这个结果文件可能是预处理文件、汇编文件、目标文件或者最终的可执行文件。假设被处理的源文件为source.suffix,如果这个选项被省略了,那么生成的可执行文件默认名称为a.out;目标文件默认名为source.o;汇编文件默认名为source.s;生成的预处理文件则发送到标准输出设备。 gcc的常用选项 gcc常用选项 选项 含义 -c 仅对源文件进行编译,不链接生成可执行文件。在对源文件进行查错时,或只需产生目标文件时可以使用该选项。 -g[gdb] 在可执行文件中加
您可能关注的文档
最近下载
- 吉林省中药软片炮制规范.pptx VIP
- 名著阅读《湘行散记》七年级语文上册部编版(共9页).docx VIP
- 《白洋淀纪事》阅读测试题含答案(推荐).docx VIP
- 必考名著《白洋淀纪事》导读+知识点汇总.pdf VIP
- CQJZDE-2008 重庆市建筑工程计价定额.docx VIP
- 人教部编版七年级语文上册名著选读《湘行散记》导读.doc VIP
- 重庆市建筑工程计价定额CQJZDE-2008.doc
- 部编版七上语文名著导读《朝花夕拾》、《白洋淀纪事》、《湘行散记》知识点练习(含答案).docx VIP
- 超星尔雅学习通《大学生劳动教育》章节测试含答案.docx VIP
- 七年级上册名著《湘行散记》知识点+习题(共12页).docx VIP
文档评论(0)