Это ситуация, с которой я сталкиваюсь время от времени:
Для встроенной системы, которая не использует виртуальную адресацию, у меня есть исполняемый файл, который был скомпилирован из кода C или C ++ с включенной информацией об отладке. Обычно это в формате COFF или ELF / DWARF (я их перепутал).
Во время выполнения на ПК я хотел бы определить адрес переменной по ее имени. (например, "foo.bar [7] .baz") Это позволяет мне читать / записывать значение переменной во встроенной системе (учитывая протокол отладки, который выходит за рамки этого вопроса). Очевидно, что любые переменные, основанные на стеке или куче, отсутствуют, поскольку у них нет статических адресов.
Я сделал это перед собой в C ++, чтобы проанализировать файлы COFF от компилятора TI для их DSP серии 2800, и это было довольно болезненно. Мне было интересно, существует ли библиотека Java, которая уже занимается подобными вещами, поскольку я сталкиваюсь с той же проблемой с исполняемыми файлами одного или двух других процессоров.
Обновление: (18.11.2009) Многообещающая подсказка!
Кто-нибудь там использовал Eclipse CDT ELF-парсер?
(см. http://help.eclipse.org/help33/index.jsp?topic=/org.eclipse.cdt.doc.isv/reference/api/org/eclipse/cdt/core/model/IBinary.html для одного из javadoc pgs)
Кодекс Композитора TI 4 (основанный на Eclipse), кажется, использует это, таким образом, похоже, что если я могу выяснить, где находится документация, возможно, я смогу использовать это для решения моей проблемы.