On Fri, Sep 11, 2009 at 7:39 AM, Adrian Cornish <adrianc@xxxxxxx> wrote:
I dont think theres "smarts" in there, so much as the kernel
just doing what the ELF contents tell it.
heres some sections from my local perl binary,
which I built with -DDEBUGGING
While not actually knowing, Id expect the usual dynamic linking mechanics would also pull in the debugging symbols
Section Headers:
[Nr] Name Type Addr Off Size ES Flg Lk Inf Al
[ 0] NULL 00000000 000000 000000 00 0 0 0
[ 1] .interp PROGBITS 08048134 000134 000013 00 A 0 0 1
[ 2] .note.ABI-tag NOTE 08048148 000148 000020 00 A 0 0 4
[ 3] .note.gnu.build-i NOTE 08048168 000168 000024 00 A 0 0 4
[ 4] .gnu.hash GNU_HASH 0804818c 00018c 003800 04 A 5 0 4
[ 9] .rel.dyn REL 0805e870 016870 000028 08 A 5 0 4
[10] .rel.plt REL 0805e898 016898 000768 08 A 5 12 4
[11] .init PROGBITS 0805f000 017000 000030 00 AX 0 0 4
[12] .plt PROGBITS 0805f030 017030 000ee0 04 AX 0 0 4
[13] .text PROGBITS 0805ff10 017f10 1a8afc 00 AX 0 0 16
[14] .fini PROGBITS 08208a0c 1c0a0c 00001c 00 AX 0 0 4
[15] .rodata PROGBITS 08208a40 1c0a40 08f070 00 A 0 [21] .dynamic DYNAMIC 082ac018 264018 0000f8 08 WA 6 0 4
[22] .got PROGBITS 082ac110 264110 000004 04 WA 0 0 4
[23] .got.plt PROGBITS 082ac114 264114 0003c0 04 WA 0 0 4
[24] .data PROGBITS 082ac4e0 2644e0 001594 00 WA 0 0 32
[25] .bss NOBITS 082ada80 265a74 00013c 00 WA 0 0 32
[26] .comment PROGBITS 00000000 265a74 0007e9 00 0 0 1
[27] .debug_aranges PROGBITS 00000000 26625d 0004c0 00 0 0 1
[28] .debug_pubnames PROGBITS 00000000 26671d 00a93f 00 0 0 1
[29] .debug_info PROGBITS 00000000 27105c 159666 00 0 0 1
[30] .debug_abbrev PROGBITS 00000000 3ca6c2 00a4ac 00 0 0 1
[31] .debug_line PROGBITS 00000000 3d4b6e 031374 00 0 0 1
[32] .debug_str PROGBITS 00000000 405ee2 014e54 01 MS 0 0 1
[33] .debug_loc PROGBITS 00000000 41ad36 0d3aca 00 0 0 1
[34] .debug_ranges PROGBITS 00000000 4ee800 0393a8 00 0 0 1
Hi All,
Please excuse me if this is incorrect list.
How/where should I look in kernel source to see how Linux loads binaries
and whether debug symbols are using physical RAM if they are included in
executable.
Or is kernel smart enough to skip all debug symbols and only load needed
Text page into ram.
I dont think theres "smarts" in there, so much as the kernel
just doing what the ELF contents tell it.
heres some sections from my local perl binary,
which I built with -DDEBUGGING
While not actually knowing, Id expect the usual dynamic linking mechanics would also pull in the debugging symbols
Section Headers:
[Nr] Name Type Addr Off Size ES Flg Lk Inf Al
[ 0] NULL 00000000 000000 000000 00 0 0 0
[ 1] .interp PROGBITS 08048134 000134 000013 00 A 0 0 1
[ 2] .note.ABI-tag NOTE 08048148 000148 000020 00 A 0 0 4
[ 3] .note.gnu.build-i NOTE 08048168 000168 000024 00 A 0 0 4
[ 4] .gnu.hash GNU_HASH 0804818c 00018c 003800 04 A 5 0 4
[ 9] .rel.dyn REL 0805e870 016870 000028 08 A 5 0 4
[10] .rel.plt REL 0805e898 016898 000768 08 A 5 12 4
[11] .init PROGBITS 0805f000 017000 000030 00 AX 0 0 4
[12] .plt PROGBITS 0805f030 017030 000ee0 04 AX 0 0 4
[13] .text PROGBITS 0805ff10 017f10 1a8afc 00 AX 0 0 16
[14] .fini PROGBITS 08208a0c 1c0a0c 00001c 00 AX 0 0 4
[15] .rodata PROGBITS 08208a40 1c0a40 08f070 00 A 0 [21] .dynamic DYNAMIC 082ac018 264018 0000f8 08 WA 6 0 4
[22] .got PROGBITS 082ac110 264110 000004 04 WA 0 0 4
[23] .got.plt PROGBITS 082ac114 264114 0003c0 04 WA 0 0 4
[24] .data PROGBITS 082ac4e0 2644e0 001594 00 WA 0 0 32
[25] .bss NOBITS 082ada80 265a74 00013c 00 WA 0 0 32
[26] .comment PROGBITS 00000000 265a74 0007e9 00 0 0 1
[27] .debug_aranges PROGBITS 00000000 26625d 0004c0 00 0 0 1
[28] .debug_pubnames PROGBITS 00000000 26671d 00a93f 00 0 0 1
[29] .debug_info PROGBITS 00000000 27105c 159666 00 0 0 1
[30] .debug_abbrev PROGBITS 00000000 3ca6c2 00a4ac 00 0 0 1
[31] .debug_line PROGBITS 00000000 3d4b6e 031374 00 0 0 1
[32] .debug_str PROGBITS 00000000 405ee2 014e54 01 MS 0 0 1
[33] .debug_loc PROGBITS 00000000 41ad36 0d3aca 00 0 0 1
[34] .debug_ranges PROGBITS 00000000 4ee800 0393a8 00 0 0 1