2010-08-11 7 views
5

पर डीबग मूल कोड मैं मोटोरोला Droid पर एनडीके के साथ एक एप्लिकेशन निर्माण डीबग करने की कोशिश कर रहा हूं। मैं निर्देशों here अनुसरण कर रहा हूँ और मैं एक एमुलेटर पर अतीत में सफलता मिली है (मैं रूट पहुँच जाहिर है), लेकिन adb शेल के माध्यम सेमोटोरोला Droid

gdbserver :5039 --attach 1082 

शुरू करने के लिए जब मैं कोशिश, मैं एक gdbserver:permission denied मिलता है। जाहिर है क्योंकि यह एक स्टॉक Droid है, मेरे पास रूट पहुंच नहीं है। क्या यह आवश्यक है? क्या मैं बस कुछ याद कर रहा हूँ?

अग्रिम धन्यवाद!

संपादित करें मैंने पुष्टि की है कि यह आदेश एमुलेटर पर काम करता है। क्या यह एक गैर-डिवाइस पर किया जा सकता है?

संपादित करें मैंने ईवीओ 4 जी पर उसी Permission Denied त्रुटियों की भी पुष्टि की है।

संपादित करें 3 मैंने यह भी पाया है कि एक उत्पादन उपकरण (उदाहरण के लिए ईवीओ 4 जी या Droid) मुझे "नहीं मिला" त्रुटि नहीं देगा। उदाहरण के लिए, जब मैंने खोल पर ljs जैसे यादृच्छिक टाइप किया, तो मुझे ljs: permission denied मिल गया। अगर आदेश मौजूद है तो त्रुटि वही है और मैं इसे एक्सेस नहीं कर सकता (सुडो - संभवतः) या यदि आदेश मौजूद नहीं है (ljs)।

+0

मुझे यकीन नहीं है ... लेकिन क्या आपको एंड्रॉइड 2.2 की आवश्यकता नहीं है जीडीबी के साथ डीबग करने के लिए? क्या आपके एंड्रॉइड 2.2 पर आपके Droid पर है? – hara

+0

मुझे और जहां तक ​​मुझे याद है, जीडीबी निर्देश/एनडीके 2.2 से पहले मौजूद है। क्या कोई इसकी पुष्टि कर सकता है? –

+0

मुझे लगता है कि गैर-"रूट" डिवाइस विशेषाधिकार प्राप्त कंसोल कमांड तक पहुंचने के लिए adb के माध्यम से 'su' चला सकते हैं, लेकिन मैंने कोशिश नहीं की है। अगर यह काम करता है तो मुझे बताएं और मैं एक उचित उत्तर पोस्ट करूंगा। –

उत्तर

2

यदि आप आर 4 एनडीके का उपयोग कर रहे हैं, तो आपको यह बहुत कुछ नहीं करना चाहिए। इसके बजाय:

  1. जोड़े एंड्रॉयड: अपने ApplicationManifest.xml के आवेदन नोड
  2. में डीबग = "true" पुस्तकालयों (NDK के साथ बनाया) किसी भी देशी के लिए, उन्हें बनाने से पहले # 1 दोहराने (आप की एक अतिरिक्त बिट को ध्यान देना चाहिए जब ndk-build एक gdbserver और gdb.setup फ़ाइलों की प्रतिलिपि बना रहा है, तो जानकारी)
  3. अपने वांछित विकल्पों के साथ $ NDK_ROOT/ndk-gdb को फायर करें (उदाहरण के लिए: मैं आमतौर पर देशी कोड को मारने से पहले ग्रहण में तोड़ता हूं और फिर ईई का उपयोग करता हूं विकल्प)
1

मैं लिंक आपके द्वारा दिए गए में प्रति

 
gdbserver :5039 --attach pid 

'के रूप में स्थानीय होस्ट' के लिए कोई संदर्भ देखते हैं - कि हैंडसेट पर है .... आप पोर्ट आगे भिजवा

 
adb forward tcp:5039 tcp:5039 

वर्कस्टेशन से?

इसके अलावा

:

 
If you can't find either special version of gdb, run find prebuilt -name 
arm-eabi-gdb in your source tree to find and run the latest version 

आप उपयोग करने की कोशिश है 'हाथ-EABI-gdb' के बजाय, स्पष्ट संस्करण के साथ ऊपर gdb की जगह ....?

+0

मैंने 'लोकलहोस्ट' को बिना किसी किस्मत के हटा दिया।मैंने अपने मेजबान पर gdb के किसी भी संस्करण की कोशिश नहीं की है क्योंकि मैं डिवाइस पर सर्वर शुरू करने में सक्षम नहीं हूं। –

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