
8. Утилита readelf
Вывести ELF заголовок программы с помощью утилиты readelf
readelf –h os2.o
9. Выводы
В ходе выполнения данной лабораторной работы мы научились автоматически собирать программу, написанную на С++, при помощи make-файла. Использовать отладчикgdb, а также использовать такие утилиты, какnm,objdump,readelf.
knoppix@0[Desktop]$ nm myprog
08049128 D _DYNAMIC
08049224 D _GLOBAL_OFFSET_TABLE_
0804884e t _GLOBAL__I_main
08048c06 t _GLOBAL__I_stroka
08048d40 R _IO_stdin_used
w _Jv_RegisterClasses
080487fa t _Z41__static_initialization_and_destruction_0ii
08048bb2 t _Z41__static_initialization_and_destruction_0ii
0804886c T _Z5inputv
08048b3e T _Z6outputv
080489a2 T _Z7realizev
U _ZNSirsERi@@GLIBCPP_3.2
U _ZNSolsEi@@GLIBCPP_3.2
08048d44 V _ZNSt15basic_streambufIcSt11char_traitsIcEE13_S_pback_sizeE
08048d48 V _ZNSt15basic_streambufIwSt11char_traitsIwEE13_S_pback_sizeE
U _ZNSt8ios_base4InitC1Ev@@GLIBCPP_3.2
U _ZNSt8ios_base4InitD1Ev@@GLIBCPP_3.2
080492f0 B _ZSt3cin@@GLIBCPP_3.2
08049260 B _ZSt4cout@@GLIBCPP_3.2
08049384 b _ZSt8__ioinit
08049408 b _ZSt8__ioinit
U _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@@GLIBCPP_3.2
U _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c@@GLIBCPP_3.2
U _ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_RS3_@@GLIBCPP_3.2
08049214 d __CTOR_END__
08049208 d __CTOR_LIST__
0804921c d __DTOR_END__
08049218 d __DTOR_LIST__
08049124 r __FRAME_END__
08049220 d __JCR_END__
08049220 d __JCR_LIST__
0804925c A __bss_start
U __cxa_atexit@@GLIBC_2.1.3
08049000 D __data_start
08048cf0 t __do_global_ctors_aux
08048760 t __do_global_dtors_aux
08049004 D __dso_handle
08049000 A __fini_array_end
08049000 A __fini_array_start
w __gmon_start__
U __gxx_personality_v0@@CXXABI_1.2
08048ce0 T __i686.get_pc_thunk.bx
08049000 A __init_array_end
08049000 A __init_array_start
08048c90 T __libc_csu_fini
08048c30 T __libc_csu_init
U __libc_start_main@@GLIBC_2.0
0804883a t __tcf_0
08048bf2 t __tcf_0
0804925c A _edata
0804940c A _end
08048d20 T _fini
08048d3c R _fp_hw
08048648 T _init
08048710 T _start
08048734 t call_gmon_start
08049380 b completed.1
08049000 W data_start
080487a0 t frame_dummy
080487d4 T main
08049404 B n
08049008 d p.0
080493a0 B stroka
knoppix@0[Desktop]$ objdump -d os2.o
os2.o: file format elf32-i386
Disassembly of section .text:
00000000 <_Z5inputv>:
0: 55 push %ebp
1: 89 e5 mov %esp,%ebp
3: 83 ec 18 sub $0x18,%esp
6: c7 44 24 04 00 00 00 movl $0x0,0x4(%esp)
d: 00
e: c7 04 24 00 00 00 00 movl $0x0,(%esp)
15: e8 fc ff ff ff call 16 <_Z5inputv+0x16>
1a: c7 44 24 04 0c 00 00 movl $0xc,0x4(%esp)
21: 00
22: 89 04 24 mov %eax,(%esp)
25: e8 fc ff ff ff call 26 <_Z5inputv+0x26>
2a: c7 44 24 04 00 00 00 movl $0x0,0x4(%esp)
31: 00
32: c7 04 24 00 00 00 00 movl $0x0,(%esp)
39: e8 fc ff ff ff call 3a <_Z5inputv+0x3a>
3e: c7 45 f8 01 00 00 00 movl $0x1,0xfffffff8(%ebp)
45: 8b 45 f8 mov 0xfffffff8(%ebp),%eax
48: 3b 05 00 00 00 00 cmp 0x0,%eax
4e: 7e 05 jle 55 <_Z5inputv+0x55>
50: e9 df 00 00 00 jmp 134 <_Z5inputv+0x134>
55: c7 44 24 04 0e 00 00 movl $0xe,0x4(%esp)
5c: 00
5d: c7 04 24 00 00 00 00 movl $0x0,(%esp)
64: e8 fc ff ff ff call 65 <_Z5inputv+0x65>
69: 89 c2 mov %eax,%edx
6b: 8b 45 f8 mov 0xfffffff8(%ebp),%eax
6e: 89 44 24 04 mov %eax,0x4(%esp)
72: 89 14 24 mov %edx,(%esp)
75: e8 fc ff ff ff call 76 <_Z5inputv+0x76>
7a: c7 44 24 04 0c 00 00 movl $0xc,0x4(%esp)
81: 00
82: 89 04 24 mov %eax,(%esp)
85: e8 fc ff ff ff call 86 <_Z5inputv+0x86>
8a: c7 44 24 04 18 00 00 movl $0x18,0x4(%esp)
91: 00
92: c7 04 24 00 00 00 00 movl $0x0,(%esp)
99: e8 fc ff ff ff call 9a <_Z5inputv+0x9a>
9e: c7 44 24 04 0c 00 00 movl $0xc,0x4(%esp)
a5: 00
a6: 89 04 24 mov %eax,(%esp)
a9: e8 fc ff ff ff call aa <_Z5inputv+0xaa>
ae: 8d 45 fc lea 0xfffffffc(%ebp),%eax
b1: 89 44 24 04 mov %eax,0x4(%esp)
b5: c7 04 24 00 00 00 00 movl $0x0,(%esp)
bc: e8 fc ff ff ff call bd <_Z5inputv+0xbd>
c1: c7 45 f4 01 00 00 00 movl $0x1,0xfffffff4(%ebp)
c8: 8b 45 f4 mov 0xfffffff4(%ebp),%eax
cb: 3b 45 fc cmp 0xfffffffc(%ebp),%eax
ce: 7e 02 jle d2 <_Z5inputv+0xd2>
d0: eb 2b jmp fd <_Z5inputv+0xfd>
d2: 8b 55 f8 mov 0xfffffff8(%ebp),%edx
d5: 89 d0 mov %edx,%eax
d7: c1 e0 02 shl $0x2,%eax
da: 01 d0 add %edx,%eax
dc: 01 c0 add %eax,%eax
de: 03 45 f4 add 0xfffffff4(%ebp),%eax
e1: 05 00 00 00 00 add $0x0,%eax
e6: 89 44 24 04 mov %eax,0x4(%esp)
ea: c7 04 24 00 00 00 00 movl $0x0,(%esp)
f1: e8 fc ff ff ff call f2 <_Z5inputv+0xf2>
f6: 8d 45 f4 lea 0xfffffff4(%ebp),%eax
f9: ff 00 incl (%eax)
fb: eb cb jmp c8 <_Z5inputv+0xc8>
fd: 8b 45 fc mov 0xfffffffc(%ebp),%eax
100: 40 inc %eax
101: 89 45 f4 mov %eax,0xfffffff4(%ebp)
104: 83 7d f4 0a cmpl $0xa,0xfffffff4(%ebp)
108: 7e 02 jle 10c <_Z5inputv+0x10c>
10a: eb 1e jmp 12a <_Z5inputv+0x12a>
10c: 8b 55 f8 mov 0xfffffff8(%ebp),%edx
10f: 89 d0 mov %edx,%eax
111: c1 e0 02 shl $0x2,%eax
114: 01 d0 add %edx,%eax
116: 01 c0 add %eax,%eax
118: 03 45 f4 add 0xfffffff4(%ebp),%eax
11b: 05 00 00 00 00 add $0x0,%eax
120: c6 00 20 movb $0x20,(%eax)
123: 8d 45 f4 lea 0xfffffff4(%ebp),%eax
126: ff 00 incl (%eax)
128: eb da jmp 104 <_Z5inputv+0x104>
12a: 8d 45 f8 lea 0xfffffff8(%ebp),%eax
12d: ff 00 incl (%eax)
12f: e9 11 ff ff ff jmp 45 <_Z5inputv+0x45>
134: c9 leave
135: c3 ret
00000136 <_Z7realizev>:
136: 55 push %ebp
137: 89 e5 mov %esp,%ebp
139: 83 ec 18 sub $0x18,%esp
13c: c7 45 f0 01 00 00 00 movl $0x1,0xfffffff0(%ebp)
143: 8b 45 f0 mov 0xfffffff0(%ebp),%eax
146: 3b 05 00 00 00 00 cmp 0x0,%eax
14c: 7e 05 jle 153 <_Z7realizev+0x1d>
14e: e9 7d 01 00 00 jmp 2d0 <_Z7realizev+0x19a>
153: a1 00 00 00 00 mov 0x0,%eax
158: 89 45 ec mov %eax,0xffffffec(%ebp)
15b: 8b 45 f0 mov 0xfffffff0(%ebp),%eax
15e: 40 inc %eax
15f: 39 45 ec cmp %eax,0xffffffec(%ebp)
162: 7d 05 jge 169 <_Z7realizev+0x33>
164: e9 5d 01 00 00 jmp 2c6 <_Z7realizev+0x190>
169: c7 45 fc 00 00 00 00 movl $0x0,0xfffffffc(%ebp)
170: c7 45 f8 01 00 00 00 movl $0x1,0xfffffff8(%ebp)
177: 8b 55 f0 mov 0xfffffff0(%ebp),%edx
17a: 89 d0 mov %edx,%eax
17c: c1 e0 02 shl $0x2,%eax
17f: 01 d0 add %edx,%eax
181: 01 c0 add %eax,%eax
183: 03 45 f8 add 0xfffffff8(%ebp),%eax
186: 05 00 00 00 00 add $0x0,%eax
18b: 80 38 20 cmpb $0x20,(%eax)
18e: 75 1e jne 1ae <_Z7realizev+0x78>
190: 8b 55 ec mov 0xffffffec(%ebp),%edx
193: 89 d0 mov %edx,%eax
195: c1 e0 02 shl $0x2,%eax
198: 01 d0 add %edx,%eax
19a: 01 c0 add %eax,%eax
19c: 03 45 f8 add 0xfffffff8(%ebp),%eax
19f: 05 00 00 00 00 add $0x0,%eax
1a4: 80 38 20 cmpb $0x20,(%eax)
1a7: 75 05 jne 1ae <_Z7realizev+0x78>
1a9: e9 8f 00 00 00 jmp 23d <_Z7realizev+0x107>
1ae: 83 7d fc 00 cmpl $0x0,0xfffffffc(%ebp)
1b2: 0f 85 85 00 00 00 jne 23d <_Z7realizev+0x107>
1b8: 8b 55 f0 mov 0xfffffff0(%ebp),%edx
1bb: 89 d0 mov %edx,%eax
1bd: c1 e0 02 shl $0x2,%eax
1c0: 01 d0 add %edx,%eax
1c2: 01 c0 add %eax,%eax
1c4: 03 45 f8 add 0xfffffff8(%ebp),%eax
1c7: 8d 88 00 00 00 00 lea 0x0(%eax),%ecx
1cd: 8b 55 ec mov 0xffffffec(%ebp),%edx
1d0: 89 d0 mov %edx,%eax
1d2: c1 e0 02 shl $0x2,%eax
1d5: 01 d0 add %edx,%eax
1d7: 01 c0 add %eax,%eax
1d9: 03 45 f8 add 0xfffffff8(%ebp),%eax
1dc: 8d 90 00 00 00 00 lea 0x0(%eax),%edx
1e2: 0f b6 01 movzbl (%ecx),%eax
1e5: 3a 02 cmp (%edx),%al
1e7: 7e 09 jle 1f2 <_Z7realizev+0xbc>
1e9: c7 45 fc 01 00 00 00 movl $0x1,0xfffffffc(%ebp)
1f0: eb 41 jmp 233 <_Z7realizev+0xfd>
1f2: 8b 55 f0 mov 0xfffffff0(%ebp),%edx
1f5: 89 d0 mov %edx,%eax
1f7: c1 e0 02 shl $0x2,%eax
1fa: 01 d0 add %edx,%eax
1fc: 01 c0 add %eax,%eax
1fe: 03 45 f8 add 0xfffffff8(%ebp),%eax
201: 8d 88 00 00 00 00 lea 0x0(%eax),%ecx
207: 8b 55 ec mov 0xffffffec(%ebp),%edx
20a: 89 d0 mov %edx,%eax
20c: c1 e0 02 shl $0x2,%eax
20f: 01 d0 add %edx,%eax
211: 01 c0 add %eax,%eax
213: 03 45 f8 add 0xfffffff8(%ebp),%eax
216: 8d 90 00 00 00 00 lea 0x0(%eax),%edx
21c: 0f b6 01 movzbl (%ecx),%eax
21f: 3a 02 cmp (%edx),%al
221: 75 09 jne 22c <_Z7realizev+0xf6>
223: c7 45 fc 00 00 00 00 movl $0x0,0xfffffffc(%ebp)
22a: eb 07 jmp 233 <_Z7realizev+0xfd>
22c: c7 45 fc 02 00 00 00 movl $0x2,0xfffffffc(%ebp)
233: 8d 45 f8 lea 0xfffffff8(%ebp),%eax
236: ff 00 incl (%eax)
238: e9 3a ff ff ff jmp 177 <_Z7realizev+0x41>
23d: 83 7d fc 01 cmpl $0x1,0xfffffffc(%ebp)
241: 75 79 jne 2bc <_Z7realizev+0x186>
243: c7 45 e8 01 00 00 00 movl $0x1,0xffffffe8(%ebp)
24a: 83 7d e8 0a cmpl $0xa,0xffffffe8(%ebp)
24e: 7e 02 jle 252 <_Z7realizev+0x11c>
250: eb 6a jmp 2bc <_Z7realizev+0x186>
252: 8b 55 ec mov 0xffffffec(%ebp),%edx
255: 89 d0 mov %edx,%eax
257: c1 e0 02 shl $0x2,%eax
25a: 01 d0 add %edx,%eax
25c: 01 c0 add %eax,%eax
25e: 03 45 e8 add 0xffffffe8(%ebp),%eax
261: 05 00 00 00 00 add $0x0,%eax
266: 0f b6 00 movzbl (%eax),%eax
269: 88 45 f7 mov %al,0xfffffff7(%ebp)
26c: 8b 55 ec mov 0xffffffec(%ebp),%edx
26f: 89 d0 mov %edx,%eax
271: c1 e0 02 shl $0x2,%eax
274: 01 d0 add %edx,%eax
276: 01 c0 add %eax,%eax
278: 03 45 e8 add 0xffffffe8(%ebp),%eax
27b: 8d 88 00 00 00 00 lea 0x0(%eax),%ecx
281: 8b 55 f0 mov 0xfffffff0(%ebp),%edx
284: 89 d0 mov %edx,%eax
286: c1 e0 02 shl $0x2,%eax
289: 01 d0 add %edx,%eax
28b: 01 c0 add %eax,%eax
28d: 03 45 e8 add 0xffffffe8(%ebp),%eax
290: 05 00 00 00 00 add $0x0,%eax
295: 0f b6 00 movzbl (%eax),%eax
298: 88 01 mov %al,(%ecx)
29a: 8b 55 f0 mov 0xfffffff0(%ebp),%edx
29d: 89 d0 mov %edx,%eax
29f: c1 e0 02 shl $0x2,%eax
2a2: 01 d0 add %edx,%eax
2a4: 01 c0 add %eax,%eax
2a6: 03 45 e8 add 0xffffffe8(%ebp),%eax
2a9: 8d 90 00 00 00 00 lea 0x0(%eax),%edx
2af: 0f b6 45 f7 movzbl 0xfffffff7(%ebp),%eax
2b3: 88 02 mov %al,(%edx)
2b5: 8d 45 e8 lea 0xffffffe8(%ebp),%eax
2b8: ff 00 incl (%eax)
2ba: eb 8e jmp 24a <_Z7realizev+0x114>
2bc: 8d 45 ec lea 0xffffffec(%ebp),%eax
2bf: ff 08 decl (%eax)
2c1: e9 95 fe ff ff jmp 15b <_Z7realizev+0x25>
2c6: 8d 45 f0 lea 0xfffffff0(%ebp),%eax
2c9: ff 00 incl (%eax)
2cb: e9 73 fe ff ff jmp 143 <_Z7realizev+0xd>
2d0: c9 leave
2d1: c3 ret
000002d2 <_Z6outputv>:
2d2: 55 push %ebp
2d3: 89 e5 mov %esp,%ebp
2d5: 83 ec 18 sub $0x18,%esp
2d8: c7 45 fc 01 00 00 00 movl $0x1,0xfffffffc(%ebp)
2df: 8b 45 fc mov 0xfffffffc(%ebp),%eax
2e2: 3b 05 00 00 00 00 cmp 0x0,%eax
2e8: 7e 02 jle 2ec <_Z6outputv+0x1a>
2ea: eb 58 jmp 344 <_Z6outputv+0x72>
2ec: c7 45 f8 01 00 00 00 movl $0x1,0xfffffff8(%ebp)
2f3: 83 7d f8 0a cmpl $0xa,0xfffffff8(%ebp)
2f7: 7e 02 jle 2fb <_Z6outputv+0x29>
2f9: eb 2e jmp 329 <_Z6outputv+0x57>
2fb: 8b 55 fc mov 0xfffffffc(%ebp),%edx
2fe: 89 d0 mov %edx,%eax
300: c1 e0 02 shl $0x2,%eax
303: 01 d0 add %edx,%eax
305: 01 c0 add %eax,%eax
307: 03 45 f8 add 0xfffffff8(%ebp),%eax
30a: 05 00 00 00 00 add $0x0,%eax
30f: 0f be 00 movsbl (%eax),%eax
312: 89 44 24 04 mov %eax,0x4(%esp)
316: c7 04 24 00 00 00 00 movl $0x0,(%esp)
31d: e8 fc ff ff ff call 31e <_Z6outputv+0x4c>
322: 8d 45 f8 lea 0xfffffff8(%ebp),%eax
325: ff 00 incl (%eax)
327: eb ca jmp 2f3 <_Z6outputv+0x21>
329: c7 44 24 04 0c 00 00 movl $0xc,0x4(%esp)
330: 00
331: c7 04 24 00 00 00 00 movl $0x0,(%esp)
338: e8 fc ff ff ff call 339 <_Z6outputv+0x67>
33d: 8d 45 fc lea 0xfffffffc(%ebp),%eax
340: ff 00 incl (%eax)
342: eb 9b jmp 2df <_Z6outputv+0xd>
344: c9 leave
345: c3 ret
00000346 <_Z41__static_initialization_and_destruction_0ii>:
346: 55 push %ebp
347: 89 e5 mov %esp,%ebp
349: 83 ec 18 sub $0x18,%esp
34c: 81 7d 0c ff ff 00 00 cmpl $0xffff,0xc(%ebp)
353: 75 2e jne 383 <_Z41__static_initialization_and_destruction_0ii+0x3d>
355: 83 7d 08 01 cmpl $0x1,0x8(%ebp)
359: 75 28 jne 383 <_Z41__static_initialization_and_destruction_0ii+0x3d>
35b: c7 04 24 68 00 00 00 movl $0x68,(%esp)
362: e8 fc ff ff ff call 363 <_Z41__static_initialization_and_destruction_0ii+0x1d>
367: c7 44 24 08 00 00 00 movl $0x0,0x8(%esp)
36e: 00
36f: c7 44 24 04 00 00 00 movl $0x0,0x4(%esp)
376: 00
377: c7 04 24 86 03 00 00 movl $0x386,(%esp)
37e: e8 fc ff ff ff call 37f <_Z41__static_initialization_and_destruction_0ii+0x39>
383: c9 leave
384: c3 ret
385: 90 nop
00000386 <__tcf_0>:
386: 55 push %ebp
387: 89 e5 mov %esp,%ebp
389: 83 ec 08 sub $0x8,%esp
38c: c7 04 24 68 00 00 00 movl $0x68,(%esp)
393: e8 fc ff ff ff call 394 <__tcf_0+0xe>
398: c9 leave
399: c3 ret
0000039a <_GLOBAL__I_stroka>:
39a: 55 push %ebp
39b: 89 e5 mov %esp,%ebp
39d: 83 ec 08 sub $0x8,%esp
3a0: c7 44 24 04 ff ff 00 movl $0xffff,0x4(%esp)
3a7: 00
3a8: c7 04 24 01 00 00 00 movl $0x1,(%esp)
3af: e8 92 ff ff ff call 346 <_Z41__static_initialization_and_destruction_0ii>
3b4: c9 leave
3b5: c3 ret
knoppix@0[Desktop]$ objdump -h myprog
myprog: file format elf32-i386
Sections:
Idx Name Size VMA LMA File off Algn
0 .interp 00000013 08048134 08048134 00000134 2**0
CONTENTS, ALLOC, LOAD, READONLY, DATA
1 .note.ABI-tag 00000020 08048148 08048148 00000148 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
2 .hash 00000094 08048168 08048168 00000168 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
3 .dynsym 00000120 080481fc 080481fc 000001fc 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
4 .dynstr 0000023f 0804831c 0804831c 0000031c 2**0
CONTENTS, ALLOC, LOAD, READONLY, DATA
5 .gnu.version 00000024 0804855c 0804855c 0000055c 2**1
CONTENTS, ALLOC, LOAD, READONLY, DATA
6 .gnu.version_r 00000060 08048580 08048580 00000580 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
7 .rel.dyn 00000018 080485e0 080485e0 000005e0 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
8 .rel.plt 00000050 080485f8 080485f8 000005f8 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
9 .init 00000017 08048648 08048648 00000648 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
10 .plt 000000b0 08048660 08048660 00000660 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
11 .text 00000610 08048710 08048710 00000710 2**4
CONTENTS, ALLOC, LOAD, READONLY, CODE
12 .fini 0000001b 08048d20 08048d20 00000d20 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
13 .rodata 0000003c 08048d3c 08048d3c 00000d3c 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
14 .eh_frame_hdr 00000054 08048d78 08048d78 00000d78 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
15 .data 0000000c 08049000 08049000 00001000 2**2
CONTENTS, ALLOC, LOAD, DATA
16 .eh_frame 0000011c 0804900c 0804900c 0000100c 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
17 .dynamic 000000e0 08049128 08049128 00001128 2**2
CONTENTS, ALLOC, LOAD, DATA
18 .ctors 00000010 08049208 08049208 00001208 2**2
CONTENTS, ALLOC, LOAD, DATA
19 .dtors 00000008 08049218 08049218 00001218 2**2
CONTENTS, ALLOC, LOAD, DATA
20 .jcr 00000004 08049220 08049220 00001220 2**2
CONTENTS, ALLOC, LOAD, DATA
21 .got 00000038 08049224 08049224 00001224 2**2
CONTENTS, ALLOC, LOAD, DATA
22 .bss 000001ac 08049260 08049260 00001260 2**5
ALLOC
23 .comment 0000012c 00000000 00000000 00001260 2**0
CONTENTS, READONLY
24 .debug_aranges 000000b8 00000000 00000000 00001390 2**3
CONTENTS, READONLY, DEBUGGING
25 .debug_pubnames 00000204 00000000 00000000 00001448 2**0
CONTENTS, READONLY, DEBUGGING
26 .debug_info 0002f907 00000000 00000000 0000164c 2**0
CONTENTS, READONLY, DEBUGGING
27 .debug_abbrev 000012f9 00000000 00000000 00030f53 2**0
CONTENTS, READONLY, DEBUGGING
28 .debug_line 00000ab0 00000000 00000000 0003224c 2**0
CONTENTS, READONLY, DEBUGGING
29 .debug_frame 00000118 00000000 00000000 00032cfc 2**2
CONTENTS, READONLY, DEBUGGING
30 .debug_str 00001cc6 00000000 00000000 00032e14 2**0
CONTENTS, READONLY, DEBUGGING
knoppix@0[Desktop]$ readelf -h myprog
ELF Header:
Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
Class: ELF32
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: UNIX - System V
ABI Version: 0
Type: EXEC (Executable file)
Machine: Intel 80386
Version: 0x1
Entry point address: 0x8048710
Start of program headers: 52 (bytes into file)
Start of section headers: 216084 (bytes into file)
Flags: 0x0
Size of this header: 52 (bytes)
Size of program headers: 32 (bytes)
Number of program headers: 8
Size of section headers: 40 (bytes)
Number of section headers: 35
Section header string table index: 32