Je ne pense pas que tu puisses faire ça, dlsym
fonctionne sur les symboles exportés. Parce que vous faites dlsym
le NULL
(image courante), même si les symboles sont présents dans l'image ELF exécutable, ils ne sont pas exportés (puisqu'il ne s'agit pas d'une bibliothèque partagée).
Pourquoi ne pas l'appeler directement et laisser l'éditeur de liens s'en occuper ? Il ne sert à rien d'utiliser dlsym
pour obtenir des symboles de la même image que votre dlsym
appel. Si votre testing
le symbole était dans une bibliothèque partagée que vous avez liée ou chargée à l'aide de dlopen
alors vous pourrez le récupérer.
Je pense qu'il existe également un moyen d'exporter des symboles lors de la création d'exécutables (-Wl,--export-dynamic
comme mentionné dans un commentaire de Brandon) mais je ne sais pas pourquoi vous voudriez faire ça.