(CSAPP第三版系列)导航篇传送门
7.6这道题是关于图7-5的m.o模块和swap.c函数版本的。
符号 |
swap.o.symtab条目 |
符号类型 |
定义符号的模块 |
节 |
buf |
是
扫描二维码关注公众号,回复:
1617415 查看本文章
|
外部 |
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。