Accéder aux données .eh_frame pendant l’exécution

J’essaie d’accéder au contenu de la section .eh_frame d’un programme en cours d’exécution depuis celui-ci (plus précisément, le programme est le kernel Linux 2.6.34.8). Le .eh_frame contient des données utiles utilisées pour la gestion des exceptions et j’aimerais les utiliser en interne à partir du code du kernel. La section est déjà écrite par gcc ( readelf -a vmlinux.o contient .eh_frame ), le problème est en train de la lire à partir du code. Je suis à peu près sûr que les documents de format elf disent que .eh_frame est accessible pendant l’exécution du code.

J’ai examiné la source de glibc à la recherche de l’utilisation de .eh_frame et trouvé des macros pour la plupart des instructions CFA dans sysdeps/generic/sysdep.h , mais pas le code qui charge les données .eh_frame .

Est-il nécessaire de modifier le processus de chargement du kernel pour charger les données à partir du fichier ou le pointeur de la section .eh_frame info / .eh_frame_hdr -il stocké quelque part sous un nom de macro / assembleur (afin de pouvoir l’extraire dans une variable C)?

vmlinux.o n’est pas le kernel qui est chargé.

L’image réelle du kernel (généralement bzImage ) n’est pas un fichier ELF et contient uniquement les données nécessaires à l’exécution du kernel.

De plus, la majeure partie du kernel n’est pas compilée avec les informations de traitement des exceptions.