Android NDK encontrar vínculo dinámico: incapaz de depurar la biblioteca
Tengo un proyecto que compila, carga y funciona en el dispositivo androide agradable. Cuando llamo al servidor gdb también funciona bien. Entonces, cuando llamo al cliente gdb para ejecutar a través de puntos de interrupción es cuando aparece el mensaje:
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
Este es mi archivo actual de Android.mk, para el caso de que pudiera faltar alguna configuración adicional:
- Android gdb error, "No se puede acceder a la memoria en la dirección"
- Los rastreos de la pila se detienen antes de llegar a mi código (en Android usando NDK)
- ¿Cómo depurar un ejecutable de Dalvik en Android con GDB?
- Ejecución de ndk-gdb con error de paquete no encontrado en el teléfono Motorola
- Android ndk-gdb no carga símbolos
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)
Cualquier sugerencia sobre cuál es la razón de tal error extraño y cómo deshacerse de él?
Todos los comentarios y sugerencias son muy apreciados y bienvenidos.
- Android NDK + GDB
- Ptrace devuelve -1 en Android
- ¿Dónde obtener el binario completo de gdb para Android?
- Cómo depurar una aplicación en Android con GDBSERVER?
- Depuración nativa de Android, bibliotecas ndk-gdb no encontradas
- Ndk-gdb error: el dispositivo no admite las ABI de CPU de la aplicación
- No es capaz de golpear el punto de interrupción en ndk-gdb en Android
- ¿Por qué GDB "salta hacia atrás" al depurar con c códigos fuente
Utilice ndk-gdb
lugar de gdb
estándar. Inicie desde el directorio raíz del proyecto. Considere el uso de la opción --verbose
si desea ver lo que está haciendo ndk-gdb
. Debe agregar esta línea a su AndroidManifest.xml
también:
android:debuggable="true"
Por ejemplo, el mío parece:
<application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" android:debuggable="true" >
Tu aplicación.mk debería definir
APP_OPTIM := debug
Con esto no tienes que añadir -g
a las banderas del compilador, ndk-build lo hará automáticamente.
- Android Studio Logcat lento en la visualización de resultados
- ¿Cómo crear nuestro propio visor de PDF para Android?