2.3.1测试

2.3.1测试

1.前言

1.推荐在OpenEuler系统中实现
2.编辑并运行2.3.1中的代码,要求在不修改t2.c 和 t1.c中main函数中的代码的情况下,程序运行结果是你的后四位学号。提交代码和运行结果截图。
3.网上学习objdump命令,提交不少于5篇博客链接和微信读书上的图书链接,并给出你认为最好的讲解资源的链接或图书名及章节
4.用objdump分析第1步中的可执行文件和目标文件,提交你的分析截图以及如何和教材讲解内容对应的,比如obj文件的文件头,代码段,数据段等,可执行文件如何链接mysum的。

2.实验过程

  • 1.本测试在openeuler中完成。
  • 2.更改代码中g的值为1324(我的学号后四位为1327)即可完成。

代码:
t1.c

#include <stdio.h>

int g = 1324;
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;
}

输出截图

3.网上学习

https://www.cnblogs.com/baiduboy/p/7061365.html
https://www.cnblogs.com/liuyimin/p/7344439.html
https://www.cnblogs.com/tongongV/p/10745040.html
https://www.cnblogs.com/274914765qq/p/4568084.html
https://www.cnblogs.com/fengliu-/p/14626546.html

3.objdump分析

代码:

objdump -S a.out 反汇编源代码 
objdump -d -j .text test 显示相应section的汇编代码
objdump -t test 输出目标文件的符号表

文件头:

代码段:

bss段:

符号段:

posted @ 2021-10-29 22:12  唐子越  阅读(28)  评论(0编辑  收藏  举报