嵌入式Linux上的C语言编程实践--第6章-GDB调试工具.pptVIP

嵌入式Linux上的C语言编程实践--第6章-GDB调试工具.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

1第6章GDB调试工具

6.1GDB简介GDB--GNUDebugger,是FSF的一个强大的命令行调试工具。虽然,它没有图形化的友好界面,但是它强大的功能也足以与微软的VC工具等媲美。主要提供4个方面的功能:指定启动程序的方式可以在被调试的程序中设置断点,断点可以设置在程序源文件中的某一行、某函数的入口或满足某各条件时。当程序被停住时,可以检查此时程序中所发生的事件可以动态改变程序的执行环境。

6.1GDB简介GDB是一个命令行工具,其常用启动格式如下:gdb[executable-file]使用GDB调试程序的本卷须知:在对源程序编译时要加-g选项,以使编译出来的程序中包含需要的调试信息。在对源程序编译时最好不要对程序进行优化编译。由于编译器在目标文件和可执行文件中参加了对源代码的引用,所以,为保证调试信息可用,源代码必须存在,且路径不能改变

6.1GDB简介例如:[root@jHL-RHL6.3]#gdbhelloGNUgdbRedHatLinux(5.3post-018rh)Copyright2003FreeSoftwareFoundation,Inc.GDBisfreesoftware,coveredbytheGNUGeneralPublicLicense,andyouarewelcometochangeitand/ordistributecopiesofitundercertainconditions.Typeshowcopyingtoseetheconditions.ThereisabsolutelynowarrantyforGDB.Typeshowwarrantyfordetails.ThisGDBwasconfiguredasi386-redhat-linux-gnu...(gdb)?GDB的提示符

GDB中的常用命令如下:6.1GDB简介

GDB中的常用命令如下:6.1GDB简介

6.2使用GDB调试程序6.2.1根本操作使用-g选项进行编译:gcc–g–Wallgcb_test.c–ogdb_test启动并载入生成的可执行程序:gdb可执行文件名如gdbgdb_test在main函数入口点设置断点:break函数名如breakmain或bmainbreak行号如break34使用run命令运行程序,将在断点处停下。run或rrun参数表参数表相当于命令行参数

使用next命令,可从断点处执行一行〔不进入函数〕nextcount或ncount使用step命令,可从断点处执行一行〔进入函数〕stepcount或scount使用continue可恢复中断了的程序继续运行直到下一断点或程序结束。continue或ccontinueignore-count继续运行,并忽略后面假设干断点

6.2.2查看命令list命令--查看源程序list行号--显示批定行号周围的源程序list函数名--显示指定函数代码list—接着前一list命令继续显示源程序where命令—查看当前程序运行位置whereprint命令—查看程序中变量的值print变量名/数组名[下标]—显示指定变量或数组元素的值。print数组名[下标]@n--显示数组中从指定元素开始的n个元素的值。

whatis命令—查看变量的类型whatis变量名/函数名/数组名ptype命令—查看变量的类型ptype变量名/函数名/数组名,此命令与whatis命令根本相同,只是能更好的显示结构体变量或数组的类型。clear命令—去除断点clear行号/函数名去除指定行或函数上的断点delete命令—去除断点delete--去除所有断点delete断点号--去除指定的断点

6.2.3高级命令设置条件断点:Break行号if条件如:break21ifi=3,表示执行到第21行且i的值为3时停下。conditionbreaknumexp--修改指定断点号处的停止条件为exp,无exp那么删除条件自动化调试可以使用GDB提供的command命令来设置在停止点停止后运行的命令。也就是说,当运行的程序在被停止住时,我们可以让GDB自动运行一些别的命令。

commands命令的格式为:commands[bnum]commandlistend例如:commands2printf“xis%d\n”,xconti

文档评论(0)

寒傲似冰 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8071104010000026

1亿VIP精品文档

相关文档