搜索
您的当前位置:首页共享库邦定时间

共享库邦定时间

来源:爱问旅游网

共享库绑定时间问题常规链接程序不会遇到一个链接用到了共享库程序能否运行正确运行依赖于运行环境这些有效性所需要不存在时就会发生错误此时除了打印一个晦涩错误信息退出之外不会更多事情要做

实际使用共享库

本章余下部分分析Unix System V Release 比较早linux系统以及4.4 BSD派生系统使用静态库技术这三者工作方式几乎相同但又存在一些具有启发意义差异SVR3.2实现修改了链接器支持共享库搜索扩展操作系统潜力支持运行夹在需求linux 的实现需要连接器进行一些挑战增加一个系统调用辅助库映射BSD/OS实现不对链接器或者操作系统做任何改变使用一个脚本链接提供必要参数并修改标准C启动例程实现库映射

下面我们实际做个实验看看

0000000000000000 <__Z5func1v>:

0: 55  pushq %rbp

1: 48 89 e5  movq %rsp, %rbp

4: c7 45 fc 0a 00 00 00  movl $10, -4(%rbp)

b: c7 45 f8 28 00 00 00  movl $40, -8(%rbp)

12: 8b 45 fc  movl -4(%rbp), %eax

15: 03 45 f8  addl -8(%rbp), %eax

18: 89 45 f4  movl %eax, -12(%rbp)

1b: 8b 45 fc  movl -4(%rbp), %eax

1e: 03 45 f8  addl -8(%rbp), %eax

21: 5d  popq %rbp

22: c3  retq

23: 66 66 66 66 2e 0f 1f 84 00 00 00 00 00  nopw %cs:(%rax,%rax)

0000000000000030 <__Z5func2ii>:

30: 55  pushq %rbp

31: 48 89 e5  movq %rsp, %rbp

34: 48 83 ec 10 subq $16, %rsp

38: 89 7d fc  movl %edi, -4(%rbp)

3b: 89 75 f8  movl %esi, -8(%rbp)

3e: 8b 45 fc  movl -4(%rbp), %eax

41: 03 45 f8  addl -8(%rbp), %eax

44: 89 45 f4  movl %eax, -12(%rbp)

47: 8b 75 f4  movl -12(%rbp), %esi

4a: 48 8d 3d 3d 00 00 00  leaq 61(%rip), %rdi ## 0x8e <__Z5func3iii+0x1e>

51: b0 00 movb $0, %al

53: e8 00 00 00 00  callq 0x58 <__Z5func2ii+0x28>

58: 8b 45 fc  movl -4(%rbp), %eax

5b: 03 45 f8  addl -8(%rbp), %eax

5e: 48 83 c4 10 addq $16, %rsp

62: 5d  popq %rbp

63: c3  retq

64: 66 66 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:(%rax,%rax)

0000000000000070 <__Z5func3iii>:

70: 55  pushq %rbp

71: 48 89 e5  movq %rsp, %rbp

74: 89 7d fc  movl %edi, -4(%rbp)

77: 89 75 f8  movl %esi, -8(%rbp)

7a: 89 55 f4  movl %edx, -12(%rbp)

7d: 8b 45 fc  movl -4(%rbp), %eax

80: 03 45 f8  addl -8(%rbp), %eax

83: 03 45 f4  addl -12(%rbp), %eax

86: 89 45 f0  movl %eax, -16(%rbp)

89: 8b 45 f0  movl -16(%rbp), %eax

8c: 5d  popq %rbp

8d: c3  retq

0000000000000000 <__Z5func1v>:

0: 55  pushq %rbp

1: 48 89 e5  movq %rsp, %rbp

4: c7 45 fc 0a 00 00 00  movl $10, -4(%rbp)

b: c7 45 f8 28 00 00 00  movl $40, -8(%rbp)

12: 8b 45 fc  movl -4(%rbp), %eax

15: 03 45 f8  addl -8(%rbp), %eax

18: 89 45 f4  movl %eax, -12(%rbp)

1b: 8b 45 fc  movl -4(%rbp), %eax

1e: 03 45 f8  addl -8(%rbp), %eax

21: 5d  popq %rbp

22: c3  retq

23: 66 66 66 66 2e 0f 1f 84 00 00 00 00 00  nopw %cs:(%rax,%rax)

0000000000000030 <__Z5func2ii>:

30: 55  pushq %rbp

31: 48 89 e5  movq %rsp, %rbp

34: 48 83 ec 20 subq $32, %rsp

38: 89 7d fc  movl %edi, -4(%rbp)

3b: 89 75 f8  movl %esi, -8(%rbp)

3e: 8b 45 fc  movl -4(%rbp), %eax

41: 03 45 f8  addl -8(%rbp), %eax

44: 89 45 f4  movl %eax, -12(%rbp)

47: 8b 75 f4  movl -12(%rbp), %esi

4a: 48 8d 3d 7d 00 00 00  leaq 125(%rip), %rdi  ## 0xce <__Z5func3iii+0x1e>

51: b0 00 movb $0, %al

53: e8 00 00 00 00  callq 0x58 <__Z5func2ii+0x28>

58: 8b 45 fc  movl -4(%rbp), %eax

5b: 89 45 e4  movl %eax, -28(%rbp)

5e: 8b 45 f8  movl -8(%rbp), %eax

61: b9 0a 00 00 00  movl $10, %ecx

66: 99  cltd

67: f7 f9 idivl %ecx

69: 89 c1 movl %eax, %ecx

6b: 8b 45 e4  movl -28(%rbp), %eax

6e: 01 c8 addl %ecx, %eax

70: 89 45 f0  movl %eax, -16(%rbp)

73: 8b 45 f0  movl -16(%rbp), %eax

76: 83 c0 28  addl $40, %eax

79: 89 45 ec  movl %eax, -20(%rbp)

7c: 8b 45 f0  movl -16(%rbp), %eax

7f: 03 45 ec  addl -20(%rbp), %eax

82: 89 45 e8  movl %eax, -24(%rbp)

85: 8b 75 e8  movl -24(%rbp), %esi

88: 48 8d 3d 4f 00 00 00  leaq 79(%rip), %rdi ## 0xde <__Z5func3iii+0x2e>

8f: b0 00 movb $0, %al

91: e8 00 00 00 00  callq 0x96 <__Z5func2ii+0x66>

96: 8b 45 fc  movl -4(%rbp), %eax

99: 03 45 f8  addl -8(%rbp), %eax

9c: 48 83 c4 20 addq $32, %rsp

a0: 5d  popq %rbp

a1: c3  retq

a2: 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:(%rax,%rax)

00000000000000b0 <__Z5func3iii>:

b0: 55  pushq %rbp

b1: 48 89 e5  movq %rsp, %rbp

b4: 89 7d fc  movl %edi, -4(%rbp)

b7: 89 75 f8  movl %esi, -8(%rbp)

ba: 89 55 f4  movl %edx, -12(%rbp)

bd: 8b 45 fc  movl -4(%rbp), %eax

c0: 03 45 f8  addl -8(%rbp), %eax

c3: 03 45 f4  addl -12(%rbp), %eax

c6: 89 45 f0  movl %eax, -16(%rbp)

c9: 8b 45 f0  movl -16(%rbp), %eax

cc: 5d  popq %rbp

cd: c3  retq

0000000000003e60 <__Z5func1v>:

3e60: 55  pushq %rbp

3e61: 48 89 e5  movq %rsp, %rbp

3e64: 48 83 ec 20 subq $32, %rsp

3e68: c7 45 fc 0a 00 00 00  movl $10, -4(%rbp)

3e6f: c7 45 f8 28 00 00 00  movl $40, -8(%rbp)

3e76: 8b 45 fc  movl -4(%rbp), %eax

3e79: 03 45 f8  addl -8(%rbp), %eax

3e7c: 89 45 f4  movl %eax, -12(%rbp)

3e7f: 8b 45 fc  movl -4(%rbp), %eax

3e82: 89 45 e4  movl %eax, -28(%rbp)

3e85: 8b 45 f8  movl -8(%rbp), %eax

3e88: b9 0a 00 00 00  movl $10, %ecx

3e8d: 99  cltd

3e8e: f7 f9 idivl %ecx

3e90: 89 c1 movl %eax, %ecx

3e92: 8b 45 e4  movl -28(%rbp), %eax

3e95: 01 c8 addl %ecx, %eax

3e97: 89 45 f0  movl %eax, -16(%rbp)

3e9a: 8b 45 f0  movl -16(%rbp), %eax

3e9d: 83 c0 28  addl $40, %eax

3ea0: 89 45 ec  movl %eax, -20(%rbp)

3ea3: 8b 45 f0  movl -16(%rbp), %eax

3ea6: 03 45 ec  addl -20(%rbp), %eax

3ea9: 89 45 e8  movl %eax, -24(%rbp)

3eac: 8b 75 e8  movl -24(%rbp), %esi

3eaf: 48 8d 3d be 00 00 00  leaq 190(%rip), %rdi  ## 0x3f74 <_printf+0x3f74>

3eb6: b0 00 movb $0, %al

3eb8: e8 b1 00 00 00  callq 0x3f6e <_printf+0x3f6e>

3ebd: 8b 45 fc  movl -4(%rbp), %eax

3ec0: 03 45 f8  addl -8(%rbp), %eax

3ec3: 48 83 c4 20 addq $32, %rsp

3ec7: 5d  popq %rbp

3ec8: c3  retq

3ec9: 0f 1f 80 00 00 00 00  nopl (%rax)

0000000000003ed0 <__Z5func2ii>:

3ed0: 55  pushq %rbp

3ed1: 48 89 e5  movq %rsp, %rbp

3ed4: 48 83 ec 20 subq $32, %rsp

3ed8: 89 7d fc  movl %edi, -4(%rbp)

3edb: 89 75 f8  movl %esi, -8(%rbp)

3ede: 8b 45 fc  movl -4(%rbp), %eax

3ee1: 03 45 f8  addl -8(%rbp), %eax

3ee4: 89 45 f4  movl %eax, -12(%rbp)

3ee7: 8b 75 f4  movl -12(%rbp), %esi

3eea: 48 8d 3d 99 00 00 00  leaq 153(%rip), %rdi  ## 0x3f8a <_printf+0x3f8a>

3ef1: b0 00 movb $0, %al

3ef3: e8 76 00 00 00  callq 0x3f6e <_printf+0x3f6e>

3ef8: 8b 45 fc  movl -4(%rbp), %eax

3efb: 89 45 e4  movl %eax, -28(%rbp)

3efe: 8b 45 f8  movl -8(%rbp), %eax

3f01: b9 0a 00 00 00  movl $10, %ecx

3f06: 99  cltd

3f07: f7 f9 idivl %ecx

3f09: 89 c1 movl %eax, %ecx

3f0b: 8b 45 e4  movl -28(%rbp), %eax

3f0e: 01 c8 addl %ecx, %eax

3f10: 89 45 f0  movl %eax, -16(%rbp)

3f13: 8b 45 f0  movl -16(%rbp), %eax

3f16: 83 c0 28  addl $40, %eax

3f19: 89 45 ec  movl %eax, -20(%rbp)

3f1c: 8b 45 f0  movl -16(%rbp), %eax

3f1f: 03 45 ec  addl -20(%rbp), %eax

3f22: 89 45 e8  movl %eax, -24(%rbp)

3f25: 8b 75 e8  movl -24(%rbp), %esi

3f28: 48 8d 3d 45 00 00 00  leaq 69(%rip), %rdi ## 0x3f74 <_printf+0x3f74>

3f2f: b0 00 movb $0, %al

3f31: e8 38 00 00 00  callq 0x3f6e <_printf+0x3f6e>

3f36: 8b 45 fc  movl -4(%rbp), %eax

3f39: 03 45 f8  addl -8(%rbp), %eax

3f3c: 48 83 c4 20 addq $32, %rsp

3f40: 5d  popq %rbp

3f41: c3  retq

3f42: 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:(%rax,%rax)

0000000000003f50 <__Z5func3iii>:

3f50: 55  pushq %rbp

3f51: 48 89 e5  movq %rsp, %rbp

3f54: 89 7d fc  movl %edi, -4(%rbp)

3f57: 89 75 f8  movl %esi, -8(%rbp)

3f5a: 89 55 f4  movl %edx, -12(%rbp)

3f5d: 8b 45 fc  movl -4(%rbp), %eax

3f60: 03 45 f8  addl -8(%rbp), %eax

3f63: 03 45 f4  addl -12(%rbp), %eax

3f66: 89 45 f0  movl %eax, -16(%rbp)

3f69: 8b 45 f0  movl -16(%rbp), %eax

3f6c: 5d  popq %rbp

3f6d: c3  retq

因篇幅问题不能全部显示,请点此查看更多更全内容

Top