2012-04-03 4 views
10

У меня есть проект, который хорошо компилирует, загружает и запускает в устройстве Android. Когда я вызываю сервер gdb, он также отлично работает. Затем, когда я называю клиент GDB, чтобы пробежать с точкой останова будет, когда появится сообщение:Android NDK найти динамическую ссылку: не удалось отладить библиотеку

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

Чувак, мы только что получили отладчик в NDK;) не заставляйте его .. Я думаю, что GDB не будет прикрепляться к динамической lib. По крайней мере, не сейчас, надеюсь, скоро .. – Tancho

ответ

5

Использовать ndk-gdb вместо стандарта gdb. Запустите его из корневого каталога проекта. Рассмотрите возможность использования опции --verbose, если вы хотите увидеть, что делает 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 

С этим вы не» t нужно добавить -g к вашим флагом компилятора, ndk-build сделает это автоматически.

+0

Невозможно создать отладчик-движок типа «Без движка», –

Смежные вопросы