【问题标题】:Android NDK find dynamic link : unable to debug libraryAndroid NDK 找到动态链接:无法调试库
【发布时间】:2012-04-17 07:29:32
【问题描述】:

我有一个项目可以很好地在 android 设备中编译、加载和运行。当我调用 gdb 服务器时,它也可以正常工作。然后,当我调用 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)

关于这种奇怪错误的原因是什么以及如何摆脱它的任何建议?

所有 cmets 和提示都非常感谢和欢迎。

【问题讨论】:

  • 伙计,我们刚刚在 NDK 中获得了一个调试器;)不要强制它。我认为 GDB 不会附加到动态库。至少现在不是,希望很快……

标签: android c++ debugging android-ndk gdb


【解决方案1】:

使用ndk-gdb 而不是标准的gdb。从您的项目根目录启动它。如果您想查看 ndk-gdb 正在做什么,请考虑使用 --verbose 选项。 您还必须将此行添加到您的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 会自动这样做。

【讨论】:

  • 无法创建“无引擎”类型的调试器引擎
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-22
  • 2011-09-01
  • 2017-03-14
  • 1970-01-01
相关资源
最近更新 更多