Diese Situation ist ich in jetzt laufe und dann:in Java: programmatisch Adressen von C/C++ Variablen gegeben einer COFF/ELF/DWARF ausführbare Bestimmung
Für ein eingebettetes System, das nicht virtuelle Adressierung nicht verwendet, ich habe eine ausführbare Datei, die aus C- oder C++ - Code kompiliert wurde und Debugging-Informationen enthielt. Es ist normalerweise in COFF oder ELF/DWARF (ich bekomme diese beiden durcheinander) Format.
Zur Laufzeit auf einem PC möchte ich die Adresse einer Variablen anhand ihres Namens ermitteln. (z. B. "foo.bar [7] .baz") Dies ermöglicht es mir, den Wert der Variablen auf dem eingebetteten System zu lesen/schreiben (angesichts eines Fehlersuchprotokolls, das außerhalb des Bereichs dieser Frage liegt). Offensichtlich sind alle Variablen, die stapelbasiert oder heap-basiert sind, out, da sie keine statischen Adressen haben.
Ich habe dies vor mir selbst in C++ getan, um COFF-Dateien von TI Compiler für ihre 2800-Serie DSPs zu analysieren, und es war ein bisschen Schmerz. Ich habe mich gefragt, ob es da draußen eine Java-Bibliothek gibt, die sowas schon tut, da ich mit den ausführbaren Dateien von ein oder zwei anderen Prozessoren genauso konfrontiert bin.
Update: (11/18/2009) ein vielversprechender Hinweis!
Hat jemand den Eclipse CDT ELF Parser benutzt?
(Siehe http://help.eclipse.org/help33/index.jsp?topic=/org.eclipse.cdt.doc.isv/reference/api/org/eclipse/cdt/core/model/IBinary.html für eine der javadoc PGS)
TI Code Composer 4 (basierend auf Eclipse) scheint dies zu verwenden, so scheint es, wie wenn ich herausfinden kann, wo die Dokumentation kann ich vielleicht ist zu verwenden, dass um mein Problem zu lösen.
kommt leider GPL nicht in Frage, aber danke für die Idee. –
Ich denke, es ist immer noch sehr nützlich für das Testen gegen welche Implementierung ich am Ende benutze. –