- 1、本文档共66页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1.3.4 GCC使用库函数 使用不同类型链接库 使用不同类型的链接库的方法很相似,都是使用选项是“-l”(注意这里是小写的“L”)。该选项是用于指明具体使用的库文件。由于在Linux中函数库的命名规则都是以“lib”开头的,因此,这里的库文件只需填写lib之后的内容即可。 gcc -o dynamic -L /root/lq/testc/lib/dynamic.o -lmydynamic 1.3.5 GCC代码优化 GCC可以对代码进行优化,它通过编译选项-On来控制优化代码的生成,其中n是一个代表优化级别的整数。 虽然优化选项可以加快代码的运行速度,但对于调试而言将是一个很大的挑战。因为代码在经过优化之后,原先在源程序中声明和使用的变量很可能不再使用,控制流也可能会突然跳转到其他的地方,循环语句也有可能因为循环展开而变得到处都有,所有这些都将使调试工作异常艰难。 1.4 嵌入式Linux调试器GDB的使用 1.4.1 GDB使用实例 1.4.2设置/删除断点 1.4.3数据相关命令 1.4.4调试运行环境相关命令 1.4.5堆栈相关命令 1.4.1 GDB使用实例 进入GDB ——gdb test 查看文件——l 设置断点 ——b 6 查看断点处情况 ——info b 运行代码 ——r 查看变量值 ——p n / p i 观察变量 ——watch n 单步运行 ——n 程序继续运行 ——c 退出GDB ——q 1.4.2设置/删除断点 命 令 格 式 作 用 break+设置断点的行号 用于在程序中对应行设置断点 tbreak+行号或函数名 设置临时断点,到达后被自动删除 break+filename+行号 用于在指定文件的对应行设置断点 break+0x… 用于在内存某一位置处暂停 break+行号+if+条件 用于设置条件断点,在循环中使用非常方便 info breakpoints/watchpoints 查看断点/观察点的情况 clear+要清除断点的行号 用于清除对应行的断点 delete+要清除断点的编号 用于清除断点和自动显示的表达式的命令。与clear的不同之处:clear要给出断点的行号,delete要给出断点的编号。用clear命令清除断点时GDB会给出提示,而用delete清除断点时GDB不会给出任何提示 disable+断点编号 让所设断点暂时失效。如果要让多个编号处的断点失效可将编号之间用空格隔开 enable+断点编号 与disable相反 awatch+变量 设置一个观察点,当变量被读出或写入时程序被暂停 rwatch+变量 设置一个观察点,当变量被程序读时,程序被暂停 watch+变量 同awatch 1.4.3数据相关命令 命 令 格 式 作 用? display+表达式 该命令用于显示表达式的值,使用了该命令后,每当程序运行到断点处都会显示表达式的值? info display 用于显示当前所有要显示值的表达式的有关情况? delete+display编号 用于删除一个要显示值的表达式,调用这个命令删除一个表达式后,被删除的表达式将不被显示? disable+display编号 使一个要显示的表达式暂时无效? enable+display编号 disable diplay的反操作? undisplay+display编号 用于结束某个表达式值的显示? whatis+变量 显示某个表达式的数据类型? print(p)+变量或表达式 用于打印变量或表达式的值? set+变量=变量值 改变程序中一个变量的值? 1.4.4调试运行环境相关命令 命 令 格 式 作 用 set args 设置运行参数 show args 参看运行参数 set width+数目 设置GDB的行宽 cd+工作目录 切换工作目录 run 程序开始执行 step(s) 进入式(会进入到所调用的子函数中)单步执行 next(n) 非进入式(不会进入到所调用的子函数中)单步执行 finish 一直运行到函数返回 until+行数 运行到函数某一行 continue(c) 执行到下一个断点或程序结束 return返回值 改变程序流程,直接结束当前函数,并将指定值返回 call+函数 在当前位置执行所要运行的函数 1.4.5堆栈相关命令 命 令 格 式 作 用 backtrace或bt 用来打印栈侦指针,也可以在该命令后加上要打印的栈侦指针的个数 frame 该命令用于打印栈侦 info reg 查看寄存器使用情况 info stack 查看堆栈情况 up 跳到上一层函数 down 与up相对 1.5 make工程管理器 1.5.1 Makefile基
您可能关注的文档
最近下载
- 2024-2025学年高中思想政治必修1 中国特色社会主义统编版(部编版)教学设计合集.docx
- 员工培训---病理.ppt
- 2025年上海市数学高考一轮复习精讲精练 第10讲空间向量与立体几何(11类核心考点精讲精练)含详解.docx
- 养老院活动记录表(新版).doc VIP
- 二年级上学期数学基础知识《填空题》专项练习及一套完整答案.docx
- 建设工程质量资料管理.ppt VIP
- 酒店智能弱电系统工程设计模板.doc VIP
- 烟草种植气象服务规范.pdf VIP
- 2023上海高三二模优秀作文汇编.doc
- 第5 2课《学习工匠事迹,领略工匠风采》(课件)-【中职专用】高二语文同步精品课件(高教版2023·职业模块).pptx VIP
文档评论(0)