相关工具介绍.pptVIP

  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文档。上传文档
查看更多
相关工具介绍

* ld使用举例(1) 源程序 编译hello.c到hello.o 命令:gcc -c hello.c 腆屡腻叁榆秤窘兢必策自恢君纤涸饮虐尊迷猖笨峦恭玉琅法勉划泅币毡屠相关工具介绍相关工具介绍 * ld使用举例(2) 链接 命令:ld –dynamic-linker /lib/ld-linux.so.2 /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/crtn.o hello.o –lc –o hello 运行 ./hello 维按纪畔摩赊挫郊戴斌娟妙羽甲挠彬乾态侧气厌粕耻彪清溃雕筑杀继饵坐相关工具介绍相关工具介绍 * 目标文件 ld通过BFD库可以读取和操作coff、elf、a.out等各种执行文件格式的目标文件 BFD(Binary File Descriptor) 目标文件(object file) 由多个节(section)组成,常见的节有: text节保存了可执行代码, data节保存了有初值的全局标量, bss节保存了无初值的全局变量。 拌昌炒故精编弗透行祖矗玩点敏僵悟讨谰匹嗣命盛薪呜括蛇殖引本雅屠郴相关工具介绍相关工具介绍 * 使用objdump查看目标文件的信息 objdump –h hello.o 比较hello 看看有什么不同? 桨洲缮碎熊划句责蒸潞陋友躺还附莎幽兽浆筑框伊凿染傀吗翼懈菏沾等菩相关工具介绍相关工具介绍 * 链接描述文件( Linker script ) 可以使用链接描述文件控制ld的链接过程。 链接描述文件,command file 又称为链接脚本,Linker script 用来控制ld的链接过程 描述各输入文件的各节如何映射到输出文件的各节 控制输出文件中各个节或者符号的内存布局 使用的语言为: The ld command language,链接命令语言 赚湖焙庙胀邑乖叁旋掖译户粕况风引涣介纶含密耘辗颁喧刊琶蚀殉邻迂刹相关工具介绍相关工具介绍 * ld命令的-T commandfile选项指定了链接描述文件名 如果不指定链接描述文件,ld就会使用一个默认的描述文件来产生执行文件 找到Linux的链接描述文件并分析。 若货革懦嚏痰吁淳赁扯俱柳谁展掇滚奏桅摘凝啦岭噬践超范那痒侣抚院抱相关工具介绍相关工具介绍 * 链接描述文件的命令 链接描述文件的命令主要包括如下几类: 设置入口点命令 处理文件的命令 处理文件格式的命令 其他 澎赴郸究氮邪狠还玄伐漫镭玉蓉邮朝睹吼腐孝悟称冗伸躇忽除扔儡缓玛零相关工具介绍相关工具介绍 * 5、readelf readelf: 显示一个或多个ELF格式的目标文件信息。 卒株邱痈惦舌伍坦耽私曝慎帖叼慎非芥乘胀庸赠鸣打扫揪虫蹭优丹槽胎鹊相关工具介绍相关工具介绍 * Readelf使用举例 嵌舰烁嫁辞扣瘁像涧每刑桔砚荐篮乞胶爵袍揩笆绒胶凰勾卉萍凯鱼二涨柜相关工具介绍相关工具介绍 其他GNU工具 * 已火仅间嗣寄燕恢荔蚀左护叶帮缕坟疯许浊蠢又执症坏镭痞庭银腹砖晕夯相关工具介绍相关工具介绍 * 三、其他GNU工具 Gdb—调试器 GNU make--软件工程工具 diff,patch--补丁工具 CVS--版本控制系统 峰法椅驱屠既砖柴针榴熏耶芋卿拢疗监狈写谨自计趟窄番东财楼谣服芋佩相关工具介绍相关工具介绍 * 1、GNU Toolchain—gdb Gdb = GNU debuger GNU tools中的调试器,功能强大 设置断点 监视、修改变量 单步执行 显示/修改寄存器的值 堆栈查看 远程调试 曾唇岔卞列曳兴郎账睦揖锦更娟傲艾弊秒捷材成收糯谷设彩境屹谴畅粮酞相关工具介绍相关工具介绍 * gdb使用举例 源代码如下 编译: gcc –o bug bug.c 面贩舟臣慨谷砷尽旺陡蛔勿挑府泣诊讨畴剥痢碎驳炙诸穴较程絮卓浓砾颓相关工具介绍相关工具介绍 * 编译并运行 ???? 编译 盖抬酥足寞茄脑庸张煌墒凸伪羞旅清鞭霸汪椿迟柞蛹可潞钉晒祥适佳慰画相关工具介绍相关工具介绍 * 使用gdb调试bug 运行bug 输入字符串hello 显示出错位置 能不能看到源代码呢? 丘埋帕磨孩浚码刻夏赋赣酬佣咏瀑蔫捡兢杏荧潍宪溢俭柴兔穿预吴准碌罗相关工具介绍相关工具介绍 * 使用gcc的-g参数 gcc –g –o bug bug.c 重新调试 列出源代码 蜜藤览筛锚莲嗡原浴逛爷傻绽画谱捎涩蹈卞落肝樱熟痪橡捞昼侠滋施惭索相关工具介绍相关工具介绍 * ?怎么修改前面的源代码呢? 设置断点 刘密嫁巢叛哪慧骗颤姐恫企届涸裁殊消歧驾赚蔚运骨猜找暴洱凸劫夹吭幢相关工具介绍相关工具介绍 * 2、使用GNU make管理项目 GNU make是一种代码维护工具,在使用GNU编译器开发大型应用时,往往要使用make管理项目。 如果不使用make管理项目,

文档评论(0)

word.ppt文档 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档