मैं lldb का उपयोग कर एंड्रॉइड स्टूडियो के मूल डिबगिंग से एंड्रॉइड मूल ऐप को डीबग करने का प्रयास कर रहा हूं।
मेरे मूल ऐप में एक libmain.so है जो एंड्रॉइड स्टूडियो द्वारा संकलित और चलाया जाता है और एक और बाहरी libother.so मेरे द्वारा संकलित। डिबगिंग करते समय, मैं libmain.so में ब्रेकपॉइंट्स सेट करने में सक्षम हूं लेकिन libother.so नहीं।
दोनों साझा वस्तुओं को छीन लिया गया है लेकिन किसी भी तरह से एंड्रॉइड स्टूडियो lldb libmain.so के unstripped संस्करण के बारे में पता है बनाता है। मैं libother.so के लिए भी ऐसा करना चाहता हूँ।एलएलडीबी: प्रतीकों फ़ाइल जोड़ें?
क्या आदेश मैं इतना है कि यह मेरी स्थानीय मशीन पर एक unstripped फ़ाइल से प्रतीकों लोड होगा lldb देने की जरूरत है?
मैं अपने स्थानीय unstripped संस्करण के लिए एक रास्ता के साथ मुख्य .so अंक देख जब मैं image list
कार्य करें:
/Users/username/Projects/gow/android/AppName/app/build/intermediates/binaries/debug/arm7/obj/armeabi-v7a/libmain.so
और /var/folders/3w/5nr95lxx3qvdm2ylb8c8b7500000gn/T/./lldb/module_cache/remote-android/.cache/B5F32653-0000-0000-0000-000000000000/libother.so
की तरह एक पथ के साथ दूसरे .so मैं कैसे करूँ lldb को libother.so
के अप्रतिबंधित संस्करण को ढूंढें?
मैंने image add
और target symbols add
की कोशिश की लेकिन यह काम नहीं किया।
आप Gradle साथ ऐप्लिकेशन का निर्माण करते हैं? यदि हां, तो क्या आप अपनी बिल्ड फाइल साझा कर सकते हैं? अपनी एंड्रॉइड.एमके फ़ाइल को भी साझा करें –
मैं इसे ग्रेडल के साथ बना देता हूं। निर्माण फ़ाइल एक ही है कि चायदानी उदाहरण के साथ आता है के समान है (https://developer.android.com/ndk/samples/sample_teapot.html) फर्क सिर्फ इतना है कि मेरी परियोजना में मैं एक फ़ोल्डर "jniLibs" कहा जाता है तो धीरे-धीरे इस फ़ोल्डर को पाता है और इसमें एएसके को भी जोड़ता है। .so के निर्माण के लिए एंड्रॉइड.एमके भी एक मानक है जिसका उपयोग एंड्रॉइड स्टूडियो समर्थन से पहले एनएनडी के साथ निर्माण के लिए किया जाता था। यह क्लैंग और सी ++ _ स्थिर (यहां जोड़ने के लिए बहुत बड़ा) का उपयोग करता है। मैं लेट्स का उपयोग कर रहा हूं एनडीके – shoosh
क्या आप विंडोज़ पर डिबगिंग कर रहे हैं? आपके द्वारा प्रदान किए गए पथ मुझे एंड्रॉइड से हैं। एनडीके में अभी भी कुछ ज्ञात बग हैं; जब एलएलडीबी ब्रेकपॉइंट्स के साथ डीबगिंग हमेशा विंडोज पर काम नहीं करती है; यदि आप इसमें भाग लेते हैं, तो आप अस्थायी कार्यवाही के रूप में जीडीबी डिबगिंग पर स्विच कर सकते हैं। –