No creo que puedas hacer eso, dlsym
funciona en símbolos exportados. Porque estás haciendo dlsym
el NULL
(imagen actual), aunque los símbolos están presentes en la imagen ELF ejecutable, no se exportan (ya que no es una biblioteca compartida).
¿Por qué no llamarlo directamente y dejar que el enlazador se encargue de ello? No tiene sentido usar dlsym
para obtener símbolos de la misma imagen que tu dlsym
llamar. Si tu testing
el símbolo estaba en una biblioteca compartida que vinculaste o cargaste usando dlopen
entonces podrías recuperarlo.
Creo que también hay una forma de exportar símbolos al crear ejecutables (-Wl,--export-dynamic
como se menciona en un comentario de Brandon), pero no estoy seguro de por qué querrías hacer eso.