2012-04-03 16 views
10

Mam projekt, który ładnie się kompiluje, ładuje i uruchamia na urządzeniu z Androidem. Kiedy dzwonię do serwera GDB, działa również dobrze. Potem, kiedy wezwać klienta do uruchamiania przez gdb z pułapki jest, gdy pojawi się komunikat:Android NDK znajduje łącze dynamiczne: nie można debugować biblioteki

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 

To jest mój obecny plik Android.mk, w przypadku niektórych Dodatkowa konfiguracja może brakować:

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) 

Jakiekolwiek sugestie na temat przyczyny takiego dziwnego błędu i jak się go pozbyć?

Wszystkie komentarze i wskazówki są mile widziane i mile widziane.

+1

Dude, właśnie dostaliśmy debugger w NDK;) nie wymuszaj tego .. Myślę, że GDB nie będzie dołączał do dynamicznej biblioteki. Przynajmniej nie teraz, mam nadzieję, że wkrótce .. – Tancho

Odpowiedz

5

Użyj ndk-gdb zamiast standardowego gdb. Uruchom go z katalogu głównego projektu. Rozważ skorzystanie z opcji --verbose, jeśli chcesz sprawdzić, co robi ndk-gdb. Należy dodać tę linię do AndroidManifest.xml także:

android:debuggable="true" 

Na przykład kopalnia wygląda następująco:

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

Twój application.mk powinna określać

APP_OPTIM := debug 

Z tego don” t do flag kompilatora trzeba dodać -g, a ndk-build zrobi to automatycznie.

+0

Nie można utworzyć silnika debuggera typu "Brak silnika" –

Powiązane problemy