के साथ शुद्ध सी प्रोग्राम की रिमोट डीबगिंग मैं एंड्रॉइड डिवाइस पर एक शुद्ध C
प्रोग्राम को दूरस्थ रूप से डीबग करने का प्रयास कर रहा हूं। एंड्रॉइड डिवाइस (लक्ष्य) यूएसबी के माध्यम से मेजबान मशीन से जुड़ा हुआ है।जीडीबी
मैं क्या किया था: लक्ष्य से कॉपी किया गया निम्न फ़ाइलें: /system/lib
, /vendor/lib
, /system/bin/app_process
, और /system/bin/linker
।
लक्ष्य:
- लक्ष्य डिवाइस
- भेजा
exe
कि मैं./gdbserver :5039 exec
- इस मूल रूप से कार्यान्वित का उपयोग कर
- लक्ष्य पर runned gdb सर्वर डिबग करने के लिए चाहते हैं
NDK
से कॉपी किया गयाgdbserver
प्रक्रिया, औरpid
मेजबान:
- बंदरगाह सक्षम
adb forward tcp:5039 tcp:5039
- runned:
arm-eabi-gcc exec
। gdb में फिर
- :
set solib-search-path ...
, पुस्तकालयों है कि मैं लक्ष्यtarget remote :5039
arm-eabi-gcc
दूरस्थ प्रक्रिया से कनेक्ट कर सकते से पहले खींच लिया साथ, और यहां तक जारी रखने के लिए (c
) निष्पादन। हालांकि, मैं ब्रेकपॉइंट्स सेट नहीं कर सकता। यदि मैं करता हूं, तो मुझे निम्न त्रुटि मिलती है: Cannot access memory at address xxx
।
क्या मुझे यहां कुछ याद आ रही है?
धन्यवाद।
संबंधित: [डीबग देशी एंड्रॉइड एप्लिकेशन] (http://stackoverflow.com/q/18143331), [ndk-gdb का उपयोग करके देशी कोड को डीबग कैसे करें] (http://stackoverflow.com/q/17593284), [मूल ऐप डीबग करते समय Gdbserver अजीब त्रुटि] (http://stackoverflow.com/q/26317509), [एंड्रॉइड एनडीके देशी ऐप्स डिबगिंग] (http://stackoverflow.com/q/8934575), [एंड्रॉइड में डीबग मूल कोड लाइब्रेरी] (http://stackoverflow.com/q/12638849), आदि – jww