CSAPP第七章家庭作业参考答案

(CSAPP第三版系列)导航篇传送门


7.6这道题是关于图7-5的m.o模块和swap.c函数版本的。

符号

swap.o.symtab条目

符号类型

定义符号的模块

buf

外部

m.o

.data

bufp0

全局

swap.o

.data

bufp1

局部

swap.o

.bss

swap

全局

swap.o

.text

temp

——

——

——

incr

局部

swap.o

.text

count

局部

swap.o

.bss


7.8 用符号来说明链接器是如何解析在每个模块中有多重定义的引用的。

A. (a) REF(main.1) -> DEF(main.1)

    (b)REF(main.2) -> DEF(main.2)

B. (a) REF(x.1) -> DEF(未知)

    (b)REF(x.2) -> DEF(未知)

C. (a) REF(x.1) -> DEF(错误)

    (b)REF(x.2) -> DEF(错误)


7.10 给出使得静态链接器能够解析所有符号引用的最小的命令行。

A. gcc p.o libx.a

B. gcc p.o libx.aliby.a libx.a

C. gcc p.o libx.aliby.a libx.a libz.a

 

7.12 考虑目标文件m.o中对函数swap的调用。

A. 0x4004f8 – 0x4 – (0xa + 0x4004e0),结果为:0xa。

B.0x400500 – 0x4 – (0xa + 0x4004d0),结果为:0x22。

你可能感兴趣的:(CSAPP第七章家庭作业参考答案)