2012-04-03 13 views
10

मेरे पास एक प्रोजेक्ट है जो एंड्रॉइड डिवाइस में संकलित, लोड और रन करता है। जब मैं जीडीबी सर्वर को कॉल करता हूं तो यह भी ठीक काम करता है। तब, जब मैं breakpoints के साथ के माध्यम से चलाने के लिए gdb ग्राहक फोन जब संदेश प्रकट होता है है:एंड्रॉइड एनडीके डायनामिक लिंक ढूंढें: लाइब्रेरी डीबग करने में असमर्थ

Error while mapping shared library sections: 
/system/bin/linker: No such file or directory. 

libandroid.so: No such file or directory. 
liblog.so: No such file or directory. 
libEGL.so: No such file or directory. 
libOpenSLES.so: No such file or directory. 
libGLESv2.so: No such file or directory. 
libGLESv2_POWERVR_SGX540_120.so: No such file or directory. 
... 
warning: Unable to find dynamic linker breakpoint function. 
GDB will be unable to debug shared library initializers 
and track explicitly loaded dynamic code 
warning: shared library handler failed to enable breakpoint 

यह मेरे वर्तमान Android.mk फ़ाइल है, मामले के लिए कुछ अतिरिक्त सेटअप अनुपलब्ध हो सकता है:

LOCAL_PATH := $(call my-dir) 
include $(CLEAR_VARS) 

LS_CPP=$(subst $(1)/,,$(wildcard $(1)/*.cpp)) 
APP_MODULES := callbacks 
APP_PLATFORM := android-14 
APP_OPTIM:= debug 

LOCAL_CFLAGS := -DRAPIDXML_NO_EXCEPTIONS 
LOCAL_CFLAGS += -g 
LOCAL_CFLAGS += -ggdb 
LOCAL_CFLAGS += -O1 

LOCAL_MODULE:=app3D 
LOCAL_SRC_FILES := $(call LS_CPP,$(LOCAL_PATH)) 
LOCAL_LDLIBS := -landroid -llog -lEGL -lOpenSLES -lGLESv2 
LOCAL_STATIC_LIBRARIES := android_native_app_glue png 
LOCAL_STATIC_LIBRARIES += /jni 

include $(BUILD_SHARED_LIBRARY) 

$(call import-module,android/native_app_glue) 
$(call import-module,libpng) 

इस तरह की अजीब त्रुटि और इससे छुटकारा पाने का कारण क्या है इसके बारे में कोई सुझाव?

सभी टिप्पणियां और संकेतों की गहराई से सराहना की और स्वागत है।

+1

दोस्त, हमें अभी एनडीके में डीबगर मिला है;) इसे मजबूर मत करो .. मुझे लगता है कि जीडीबी एक गतिशील lib से जुड़ा नहीं होगा। कम से कम अब, उम्मीद है कि जल्द ही .. – Tancho

उत्तर

5

मानक gdb के बजाय ndk-gdb का उपयोग करें। इसे अपनी परियोजना रूट निर्देशिका से लॉन्च करें। विकल्प का उपयोग करने पर विचार करें यदि आप देखना चाहते हैं कि ndk-gdb क्या कर रहा है। आप अपने AndroidManifest.xml भी करने के लिए इस लाइन जोड़ना होगा:

android:debuggable="true" 

उदाहरण के लिए, मेरा लगता है:

<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" 
    android:debuggable="true" > 

अपने application.mk परिभाषित करना चाहिए

APP_OPTIM := debug 

यह आप डॉन 'के साथ टी को आपके कंपाइलर झंडे में -g जोड़ना होगा, ndk-build स्वचालित रूप से ऐसा करेगा।

+0

"नो इंजन" प्रकार के डीबगर इंजन बनाने में असमर्थ –

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