Shared Library Symbole Table
-
Hallo,
ich hoffe meine letzte Frage zu den Shared Librarys.Wenn ich selbst eine Shared Library erstellt habe, dann sehe ich in der Symbol Table immer Einträge mit "__" bzw "_".
Aktuelles Beispiel aus einer Testlibrary von mir:
SYMBOL TABLE:
000000b4 l d .hash 00000000
0000015c l d .dynsym 00000000
000002cc l d .dynstr 00000000
00000382 l d .gnu.version 00000000
000003b0 l d .gnu.version_r 00000000
000003e0 l d .rel.dyn 00000000
00000408 l d .rel.plt 00000000
00000418 l d .init 00000000
00000430 l d .plt 00000000
00000460 l d .text 00000000
00000578 l d .fini 00000000
00000594 l d .rodata 00000000
000005b8 l d .eh_frame 00000000
000015bc l d .ctors 00000000
000015c4 l d .dtors 00000000
000015cc l d .jcr 00000000
000015d0 l d .dynamic 00000000
00001698 l d .got 00000000
000016a4 l d .got.plt 00000000
000016b8 l d .data 00000000
000016c0 l d .bss 00000000
00000000 l d .comment 00000000
00000000 l d *ABS* 00000000
00000000 l d *ABS* 00000000
00000000 l d *ABS* 00000000
00000460 l F .text 00000000 call_gmon_start
00000000 l df *ABS* 00000000 crtstuff.c
000015bc l O .ctors 00000000 __CTOR_LIST__
000015c4 l O .dtors 00000000 __DTOR_LIST__
000015cc l O .jcr 00000000 __JCR_LIST__
000016bc l O .data 00000000 p.0
000016c0 l O .bss 00000001 completed.1
00000484 l F .text 00000000 __do_global_dtors_aux
000004e0 l F .text 00000000 frame_dummy
00000000 l df *ABS* 00000000 crtstuff.c
000015c0 l O .ctors 00000000 __CTOR_END__
000015c8 l O .dtors 00000000 __DTOR_END__
000005b8 l O .eh_frame 00000000 __FRAME_END__
000015cc l O .jcr 00000000 __JCR_END__
00000548 l F .text 00000000 __do_global_ctors_aux
00000000 l df *ABS* 00000000 mylib.c
000016b8 l O .data 00000000 .hidden __dso_handle
000015d0 g O *ABS* 00000000 _DYNAMIC
00000418 g F .init 00000000 _init
000016c0 g *ABS* 00000000 __bss_start
0000051c g F .text 0000002a my_print
00000000 F *UND* 00000036 printf@@GLIBC_2.0
00000578 g F .fini 00000000 _fini
00000000 w F *UND* 000000e7 __cxa_finalize@@GLIBC_2.1.3
000016c0 g *ABS* 00000000 edata
000016a4 g O *ABS* 00000000 _GLOBAL_OFFSET_TABLE_
000016c4 g *ABS* 00000000 end
00000000 w *UND* 00000000 _Jv_RegisterClasses
00000000 w *UND* 00000000 __gmon_startDie einzige Funktion die ich in dieser Testlibrary geschrieben habe ist "my_print".
Woher kommen nun die anderen Einträge und was bedeuten Sie?
Danke für euere Hilfe
-
Die anderen Einträge sind globale Segmente, importirte Funktionen und Variabeln.