Ce qui ne l' .eh_frame et .eh_frame_hdr sections du magasin, exactement?
Je sais que, lors de l'utilisation de langages qui prennent en charge les exceptions, tels que C++, des informations complémentaires doivent être fournies à l'environnement d'exécution pour décrire l'appel à des cadres qui doivent être déroulé pendant le traitement d'une exception. Cette information est contenue dans des sections spéciales de l'objet de fichiers, tels que .eh_frame
et .eh_frame_hdr
.
Mais, quel genre de structures de données sont stockées dans ces sections? Je veux dire, peut-on lire à l'aide d'une C struct? Ont-ils quelque chose à voir avec la .cfi
états (comme .cfi_startproc
, .cfi_endproc
, .cfi_offset
, .cfi_def_cfa_offset
, .cfi_personality
et .cfi_lsda
) dans GNU code assembleur? S'ils le font, ce que chacun de ces clauses cause dans ces articles? Ce qui ne l' .eh_frame_hdr
section ont à faire avec la .eh_frame
un?
J'aimerais avoir des explications à l'aide de C structs autant que possible. Merci.
Vous devez vous connecter pour publier un commentaire.
S'il vous plaît, voir fci-directives
Il doit couvrir l'histoire et la théorie de la plupart des sections en question.
Sur eh_frame, il contient de l'exception la détente et la langue source de l'information. Chaque entrée de cette section est représentée par un seul FCI (appelez le cadre de l'information )
voir, eh_frame dans linuxfoundation
eh_frame_hdr, est utilisé par le c++ runtime code pour accéder à la eh_frame. Cela signifie qu'elle contient le pointeur et la recherche binaire de la table pour récupérer efficacement les informations à partir de eh_frame.
Maintenant, dans le cas où vous voulez voir comment vous écrivez ou lisez cette section, alors je suggère de prendre un coup d'oeil à la suite de l'éditeur de liens code.
(cherchez EhFrame.cpp, EhFrameHdr.cpp et EhFrameReader.cpp )
Bonne chance !!