Ceci est une situation que je lance en maintenant puis:en Java: programme déterminer les adresses de C/C variables de GIVEN un COFF/ELF/exécutable NAIN
Pour un système embarqué qui n'utilise pas l'adressage virtuel, je un fichier exécutable compilé à partir du code C ou C++ avec les informations de débogage incluses. C'est généralement au format COFF ou ELF/DWARF (j'obtiens ces deux mélanges).
Lors de l'exécution, sur un PC, je voudrais déterminer l'adresse d'une variable donnée son nom. (par exemple "foo.bar [7] .baz") Cela me permet de lire/écrire la valeur de la variable sur le système embarqué (étant donné un protocole de débogage qui dépasse la portée de cette question). Évidemment, toutes les variables qui sont basées sur la pile ou sur le tas sont manquantes car elles n'ont pas d'adresse statique.
Je l'ai fait avant moi en C++ pour analyser les fichiers COFF du compilateur de TI pour leurs DSP de la série 2800, et c'était un peu pénible. Je me demandais s'il existait déjà une bibliothèque Java qui fait déjà ce genre de chose, puisque je suis confrontée à la même chose avec les fichiers exécutables d'un ou deux autres processeurs.
Mise à jour: (11/18/2009) Un indice prometteur!
Quelqu'un a-t-il utilisé l'analyseur Eclipse CDT ELF?
(Voir http://help.eclipse.org/help33/index.jsp?topic=/org.eclipse.cdt.doc.isv/reference/api/org/eclipse/cdt/core/model/IBinary.html pour l'une des pages javadoc)
code de TI Composer 4 (basé sur Eclipse) semble utiliser, il semble que si je peux comprendre où la documentation est que je peux peut-être utiliser cette pour résoudre mon problème.
Malheureusement GPL est hors de question, mais merci pour l'idée. –
Je suppose qu'il est toujours très utile pour tester la mise en œuvre que j'utilise. –