2.3.1测试
2.3.1测试
任务详情
1 编辑并运行2.3.1中的代码,要求在不修改t2.c 和 t1.c中main函数中的代码的情况下,程序运行结果是你的后四位学号。提交代码和运行结果截图。
2 网上学习objdump命令,提交不少于5篇博客链接和微信读书上的图书链接,并给出你认为最好的讲解资源的链接或图书名及章节
3 用objdump分析第1步中的可执行文件和目标文件,提交你的分析截图以及如何和教材讲解内容对应的,比如obj文件的文件头,代码段,数据段等,可执行文件如何链接mysum的。
任务一
代码截图:
t1.c
t2.c
运行结果:
任务二
https://www.cnblogs.com/liuyimin/p/7344439.html
http://blog.chinaunix.net/uid-9525959-id-2001838.html优点:实例全面且功能分析清晰易懂,便于上手
https://blog.csdn.net/weixin_32955455/article/details/116558612
https://man.linuxde.net/objdump优点:介绍使用方法和案例,较详细。
https://www.cnblogs.com/ZhaoKevin/p/12329667.html 优点:这个适合小白,中间有示例
任务三
本次主要使用到的代码
objdump -S test 反汇编源代码(gcc -g 效果更好!!!)
objdump -d -j .text test 显示相应section的汇编代码
objdump -t test 输出目标文件的符号表
文件头
代码段
数据段
bss段
符号表
执行文件如何链接mysum
从图中可以看出main函数在执行到mysum时函数call连接了mysum函数所在的地址(0x6a1)。![]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通