Non penso che tu possa farlo, dlsym
funziona sui simboli esportati. Perché stai facendo dlsym
il NULL
(immagine corrente), anche se i simboli sono presenti nell'immagine ELF eseguibile, non vengono esportati (poiché non è una libreria condivisa).
Perché non chiamarlo direttamente e lasciare che se ne occupi il linker? Non ha senso usare dlsym
per ottenere simboli dalla stessa immagine del tuo dlsym
chiamata. Se il tuo testing
symbol era in una libreria condivisa a cui ti sei collegato o che hai caricato usando dlopen
allora sarai in grado di recuperarlo.
Credo che ci sia anche un modo per esportare i simboli durante la creazione di eseguibili (-Wl,--export-dynamic
come menzionato in un commento di Brandon) ma non sono sicuro del motivo per cui vorresti farlo.