int printf(const char * format,...);
int global_init_var = 84;
int global_uninit_var;
void fun1(int i)
{
printf("%d\n",i);
}
int main()
{
static int static_var = 85;
static int static_var2;
int a = 1;
int b;
func1(static_var + static_var2 + a + b);
}
objdump -h SimpleSection.o
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 00000050 00000000 00000000 00000104 2**2
CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
1 .data 00000008 00000000 00000000 00000154 2**2
CONTENTS, ALLOC, LOAD, DATA
2 .bss 00000004 00000000 00000000 00000000 2**2
ALLOC
3 .drectve 00000024 00000000 00000000 0000015c 2**2
CONTENTS, ALLOC, LOAD, DATA
4 .rdata 00000004 00000000 00000000 00000180 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
5 .eh_frame 00000058 00000000 00000000 00000184 2**2
CONTENTS, ALLOC, LOAD, RELOC, READONLY, DATA
objdump -s -d SimpleSection.o
Contents of section .text:
0000 5589e583 ec188b45 08894424 04c70424 U......E..D$...$
0010 00000000 e8000000 00c9c355 89e583e4 ...........U....
0020 f083ec20 e8000000 00c74424 1c010000 ... ......D$....
0030 008b1504 000000a1 00000000 01d00344 ...............D
0040 241c0344 24188904 24e80000 0000c9c3 $..D$...$.......
Disassembly of section .text:
00000000 <_fun1>:
0: 55 push %ebp
1: 89 e5 mov %esp,%ebp
3: 83 ec 18 sub $0x18,%esp
6: 8b 45 08 mov 0x8(%ebp),%eax
9: 89 44 24 04 mov %eax,0x4(%esp)
d: c7 04 24 00 00 00 00 movl $0x0,(%esp)
14: e8 00 00 00 00 call 19 <_fun1+0x19>
19: c9 leave
1a: c3 ret
0000001b <_main>:
1b: 55 push %ebp
1c: 89 e5 mov %esp,%ebp
1e: 83 e4 f0 and $0xfffffff0,%esp
21: 83 ec 20 sub $0x20,%esp
24: e8 00 00 00 00 call 29 <_main+0xe>
29: c7 44 24 1c 01 00 00 movl $0x1,0x1c(%esp)
30: 00
31: 8b 15 04 00 00 00 mov 0x4,%edx
37: a1 00 00 00 00 mov 0x0,%eax
3c: 01 d0 add %edx,%eax
3e: 03 44 24 1c add 0x1c(%esp),%eax
42: 03 44 24 18 add 0x18(%esp),%eax
46: 89 04 24 mov %eax,(%esp)
49: e8 00 00 00 00 call 4e <_main+0x33>
4e: c9 leave
4f: c3 ret
Contents of section .data:
0000 54000000 55000000 T...U...
global_init_var = 84 = 0x54
static int static_var = 85 = 0x55;
Contents of section .drectve:
0000 202d616c 69676e63 6f6d6d3a 225f676c -aligncomm:"_gl
0010 6f62616c 5f756e69 6e69745f 76617222 obal_uninit_var"
0020 2c320000 ,2..
Contents of section .rdata:
0000 25640a00 %d..
来自printf("%d\n",i);
Contents of section .eh_frame:
0000 14000000 00000000 017a5200 017c0801 .........zR..|..
0010 1b0c0404 88010000 1c000000 1c000000 ................
0020 04000000 1b000000 00410e08 8502420d .........A....B.
0030 0557c50c 04040000 1c000000 3c000000 .W..........<...
0040 1f000000 35000000 00410e08 8502420d ....5....A....B.
0050 0571c50c 04040000 .q......