Je suppose que vous allez compiler le C généré avec les informations de débogage (-g), alors vous demandez comment avoir des enregistrements DWARF supplémentaires qui décrivent votre langage de haut niveau. Approches envisageables:
(1) éditer le fichier objet pour augmenter les enregistrements DWARF pour le code C. Je ne connais pas un outil existant, peut-être faisable avec libdwarf ou pyelftools.
(2) trouver un moyen de "passer" des enregistrements DWARF supplémentaires à travers le compilateur, par ex. Un peu comme les commandes du linker peuvent être données via #pragmas. Cependant, je ne connais pas de compilateur qui supporte cela.
(3) LLVM prend en charge les enregistrements de débogage dans IR representation. Vous pouvez utiliser clang pour compiler votre C généré en IR (clang foo.c -S -emit-llvm -target arm -o foo.ll
), puis augmenter foo.ll, puis générer le .o (llc foo.ll
), prêt pour la liaison.
La troisième option semble être la plus facile.
Merci pour les idées. Je pourrais essayer la troisième option! –