2009-04-03 5 views
5

यह एक स्थिति मैं अब और फिर में चलाने दिया डीसीगिंग जानकारी के साथ सी या सी ++ कोड से संकलित एक निष्पादन योग्य फ़ाइल शामिल है। यह आमतौर पर सीओएफएफ या ईएलएफ/डीडब्ल्यूएआरएफ (मुझे उन दो मिश्रित) प्रारूप में मिलता है।:</p> <p>एक एम्बेडेड सिस्टम जो प्रयोग नहीं करता है आभासी को संबोधित कर रहे, मेरे पास के लिए: प्रोग्राम के रूप में सी के पतों का निर्धारण करने/C++ चर एक Coff/ELF/बौना निष्पादन

रनटाइम पर, एक पीसी पर, मैं एक चर यह नाम इसलिए दिया की पता निर्धारित करना चाहते हैं। (जैसे, "foo.bar [7] .baz") यह मैं पढ़ने/एम्बेडेड प्रणाली (एक डिबगिंग प्रोटोकॉल है कि इस सवाल का दायरे से परे है दी गई) पर वेरिएबल का मान लिखने के लिए अनुमति देता है। जाहिर है, किसी भी चर जो स्टैक-आधारित या ढेर-आधारित हैं, वे बाहर हैं क्योंकि उनके पास स्थिर पते नहीं हैं।

मैं उनके 2800 श्रृंखला DSPs के लिए TI की संकलक से Coff फ़ाइलें पार्स करने के लिए C++ अपने आप से पहले इस किया है, और यह एक तरह एक दर्द की थी। मैं सोच रहा था कि वहां एक जावा लाइब्रेरी थी जो इस तरह की चीज पहले से ही करती है, क्योंकि मुझे एक या दो अन्य प्रोसेसर की निष्पादन योग्य फाइलों के साथ एक ही चीज़ का सामना करना पड़ रहा है।


अद्यतन: (2009/11/18) एक होनहार सुराग!

वहाँ किसी को भी है ग्रहण CDT ELF पार्सर का इस्तेमाल किया?

(जावाडोक पृ में से एक के लिए http://help.eclipse.org/help33/index.jsp?topic=/org.eclipse.cdt.doc.isv/reference/api/org/eclipse/cdt/core/model/IBinary.html देखें)

TI की संहिता संगीतकार 4 (ग्रहण के आधार पर) यह उपयोग करने के लिए लगता है, इसलिए जहां प्रलेखन शायद मैं उपयोग कर सकते हैं वह यह है कि ऐसा लगता है कि अगर मैं यह पता लगाने कर सकते हैं मेरी समस्या को हल करने के लिए।

उत्तर

2

gdb समर्थन अपने लक्ष्य सीपीयू करता है?

यदि हां, तो आपका प्रोग्राम जो डिबगिंग प्रोटोकॉल लागू करता है और लक्ष्य से बात करता है, GDB Remote Serial Protocol को भी कार्यान्वित कर सकता है और जीडीबी के साथ संवाद करने के लिए एक टीसीपी सॉकेट प्रदान कर सकता है। लक्ष्य

पूरी बात को चलाने के लिए अपने लक्ष्य मानते हुए> -> जावा-prog < --your डिबग प्रोटोकॉल -

व्यवस्था इस

gdb < --gdb प्रोटोकॉल की तरह कुछ होगा पहले से ही अपने कार्यक्रम चलाने gdb your-executable चल रहा है

  1. भागो जावा-prog
  2. और जावा-prog

    से कनेक्ट

    (gdb) को लक्षित दूरस्थ 127.0.0.1:port

  3. gdb पूछें मूल्य को पढ़ने के लिए

    (gdb) पी foo.bar [7] .baz

यह अनुवाद किया है जीडीबी पैकेट्स को जो टीसीपी पर जावा-प्रोग को भेजे जाते हैं। जावा-prog gdb प्रोटोकॉल और अपने कस्टम डिबग प्रोटोकॉल के बीच अनुवाद करना चाहिए।

1

आप अपने प्लेटफ़ॉर्म के लिए संकलित GNU binutils पर जेएनआई इंटरफ़ेस बना सकते हैं।हालांकि, अगर जीपीएल आपके सॉफ्टवेयर के लाइसेंस के साथ संघर्ष करता है, तो यह एक व्यवहार्य समाधान नहीं होगा।

+0

दुर्भाग्य से जीपीएल प्रश्न से बाहर है, लेकिन विचार के लिए धन्यवाद। –

+0

मुझे लगता है कि यह अभी भी जो भी कार्यान्वयन मैं समाप्त कर रहा हूं उसके खिलाफ परीक्षण के लिए बहुत उपयोगी है। –

संबंधित मुद्दे