20191324test2.3.1
编辑并运行代码,使结果是后四位学号
t1.c:
#include <stdio.h>
int g = 1321;
static int s;
int main()
{
int a = 1;
static int c = 3;
int b = 2;
c = mysum(a,b);
printf("sum = %d\n",c);
return 1;
}
t2.c:
extern int g;
int mysum(int x ,int y)
{
return x+y+g;
}
运行截图:
什么是objdump
objdump命令是Linux下的反汇编目标文件或者可执行文件的命令,它以一种可阅读的格式让你更多地了解二进制文件可能带有的附加信息。
5篇博客链接和微信读书上的图书链接,并给出你认为最好的讲解资源的链接或图书名及章节
https://blog.csdn.net/q2519008/article/details/82349869(个人认为最好,详细说明了objdump的各个参数命令,还举例说明,介绍常用符号表字段)
https://blog.csdn.net/freeplayer/article/details/45133721
http://lnmp.ailinux.net/objdump
https://blog.csdn.net/qq_41683305/article/details/105375214
http://blog.chinaunix.net/uid-9525959-id-2001838.html
用objdump分析第1步中的可执行文件和目标文件
可执行文件:objdump -d t
在分析中可以看到程序的文件头(包含代码段、数据段和BSS段的大小)、代码段、数据段以及BSS段:
main:
mysum:
对t.o进行反汇编:
在完成编译进行链接的时候,链接器就会将所有内容的地址链接起来,从而让程序被打散在内存各个部分的段能够又拼接在一起。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~