Đây là một tình huống tôi chạy vào bây giờ và sau đó:trong Java: lập trình xác định địa chỉ của C/biến C++ cung cấp một COFF/ELF/lùn thực thi
Đối với một hệ thống nhúng mà không sử dụng địa chỉ ảo, tôi có một tập tin thực thi được biên dịch từ mã C hoặc C++ với thông tin gỡ lỗi đi kèm. Nó thường có dạng COFF hoặc ELF/DWARF (tôi nhận được hai kiểu hỗn hợp).
Khi chạy, trên PC, tôi muốn xác định địa chỉ của biến được đặt tên. (ví dụ: "foo.bar [7] .baz") Điều này cho phép tôi đọc/ghi giá trị của biến trên hệ thống nhúng (được đưa ra một giao thức gỡ lỗi nằm ngoài phạm vi của câu hỏi này). Rõ ràng, bất kỳ biến nào dựa trên xếp chồng hoặc dựa trên đống đều không có địa chỉ tĩnh.
Tôi đã thực hiện điều này trước khi bản thân mình trong C++ để phân tích các tệp COFF từ trình biên dịch TI cho các dòng DSP 2800 của chúng và điều này thật là đau. Tôi đã tự hỏi nếu có một thư viện Java ra khỏi đó mà loại điều này đã có, kể từ khi tôi đang phải đối mặt với cùng một điều với một hoặc hai tập tin thực thi của bộ vi xử lý khác.
Cập nhật: (2009/11/18) Một đầu mối hứa hẹn!
Có ai ngoài đó đã sử dụng trình phân tích cú pháp ELF của Eclipse CDT không?
(Xem http://help.eclipse.org/help33/index.jsp?topic=/org.eclipse.cdt.doc.isv/reference/api/org/eclipse/cdt/core/model/IBinary.html cho một trong những pgs javadoc)
Mã TI Composer 4 (dựa trên Eclipse) dường như sử dụng này, vì vậy nó có vẻ như nếu tôi có thể tìm ra nơi các tài liệu hướng dẫn là có lẽ tôi có thể sử dụng để giải quyết vấn đề của tôi.
tiếc là GPL không nằm trong câu hỏi, nhưng cảm ơn ý tưởng. –
Tôi cho rằng nó vẫn rất hữu ích để thử nghiệm đối với bất kỳ việc triển khai nào mà tôi sử dụng. –