Die einzige Methode, die ich kenne, ist der Inhalt von /proc/self/maps
(und/oder vielleicht smaps
) und dann auf das Symbol Adresse verwenden, um analysieren von den Grenzen des abgebildeten .so
(Start- und seine Größe), in dem Modul zugeordnet zu berechnen Die Funktion liegt.
Hinweis: /proc/self
ist ein Symlink (unter Linux) zur aktuellen Prozess (mit ID <pid>
) Meta-Informationen, d. H. /proc/<pid>
.
Es ist möglich, dass es einige Programmierschnittstellen zu dieser Information gibt, die Sie verwenden könnten.
Bearbeiten: Ah, also dladdr()
wäre diese Schnittstelle.
vielen Dank. Diese Information ist sehr nützlich. aber es ist zu niedriger Ebene. also möchte ich einen anderen Weg versuchen, um zu arbeiten. – pjincz
'dladdr' bietet eine * viel * bessere Methode. –
@Arbeitslos Russisch: Keine streiten. Ich habe darauf hingewiesen, dass es auch eine Programmierschnittstelle geben könnte, die mir damals nicht bekannt war. Und zweifellos wird 'dladdr()' diese Information irgendwie nutzen. Sie könnten meine Antwort zum Beispiel bearbeitet haben. So oder so, lernte etwas und das ist (für mich) der wichtigste Teil. – 0xC0000022L