2012-04-03 2 views
10

Ich habe ein Projekt, das kompiliert, lädt und läuft in der Android-Gerät schön. Wenn ich den gdb-Server anrufe, funktioniert es auch gut. Dann, wenn ich den GDB Client aufrufen mit einzelnen Stützpunkten durchlaufen wird, wenn die Meldung angezeigt wird:Android NDK dynamischen Link finden: nicht in der Lage, Bibliothek zu debuggen

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 

Dies ist meine aktuelle Android.mk Datei, für den Fall, dass einige zusätzliche Einstellungen fehlen könnte:

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) 

Irgendwelche Vorschläge darüber, was der Grund für solch seltsamen Fehler und wie man es loswerden?

Alle Kommentare und Hinweise sind sehr willkommen und willkommen.

+1

Alter, wir haben gerade einen Debugger in der NDK;) zwingt es nicht .. Ich denke, die GDB wird nicht an eine dynamische Bibliothek anhängen. Zumindest nicht jetzt, hoffentlich bald .. – Tancho

Antwort

5

Verwenden Sie ndk-gdb anstelle von Standard gdb. Starten Sie es aus Ihrem Projektstammverzeichnis. Erwägen Sie die Verwendung der Option --verbose, wenn Sie sehen möchten, was ndk-gdb tut. Sie müssen diese Zeile in AndroidManifest.xml auch hinzufügen:

android:debuggable="true" 

Zum Beispiel mein wie folgt aussieht:

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

Ihre application.mk

APP_OPTIM := debug 

Damit definieren sollten Sie don‘ t müssen -g zu Ihren Compiler-Flags hinzugefügt werden, ndk-build wird dies automatisch tun.

+0

Kann keine Debugger-Engine vom Typ "No engine" erstellen –

Verwandte Themen