Android GDB没有加载C 共享库

Android GDB is not loading c++ shared library

本文关键字:共享 加载 GDB Android      更新时间:2023-10-16

我一直在尝试调试我在C/C 上编写的共享库,但我无法使用Eclipse进行调试。当我设置一个断点时,从未击中断点,并且在GDB中执行info sharedlibrary后,我得到了他的关注,确认库不存在(称为libtest-java.so)

From        To          Syms Read   Shared Object Library
                        No          /system/bin/linker
0x40093070  0x400c36f8  Yes         /Users/jpuig/Development/test/git/test_lib-protoype/java/test_Android/obj/local/armeabi/libc.so
                        No          libstdc++.so
                        No          libm.so
                        No          liblog.so
                        No          libcutils.so
                        No          libgccdemangle.so
                        No          libcorkscrew.so
                        No          libutils.so
                        No          libbinder.so
                        No          libhardware.so
                        No          libmemtrack.so
                        No          libz.so
                        No          libandroidfw.so
                        No          libexpat.so
                        No          libstlport.so
                        No          libnativehelper.so
                        No          libnetutils.so
                        No          libsync.so
                        No          libui.so
                        No          libGLES_trace.so
                        No          libEGL.so
                        No          libGLESv2.so
                        No          libgui.so
                        No          libinput.so
                        No          libcamera_metadata.so
                        No          libcamera_client.so
                        No          libpng.so
                        No          libft2.so
                        No          libjpeg.so
                        No          libgabi++.so
                        No          libicuuc.so
                        No          libicui18n.so
                        No          libskia.so
                        No          libsqlite.so
                        No          libGLESv1_CM.so
                        No          libETC1.so
                        No          libwpa_client.so
                        No          libhardware_legacy.so
                        No          libselinux.so
                        No          libsonivox.so
                        No          libcrypto.so
                        No          libssl.so
                        No          libstagefright_foundation.so
                        No          libspeexresampler.so
                        No          libaudioutils.so
                        No          libmedia.so
                        No          libusbhost.so
                        No          libharfbuzz_ng.so
                        No          libLLVM.so
                        No          libbcinfo.so
                        No          libbcc.so
                        No          libRS.so
                        No          libRScpp.so
                        No          libhwui.so
                        No          libandroid_runtime.so
                        No          libdvm.so
                        No          libjavacore.so
                        No          memtrack.msm8974.so
                        No          libdrmframework.so
                        No          libdrmframework_jni.so
                        No          libconnectivitymanager.so
                        No          libstagefright_omx.so
                        No          libstagefright_yuv.so
                        No          libvorbisidec.so
                        No          libpowermanager.so
                        No          libstagefright_enc_common.so
                        No          libstagefright_avc_common.so
                        No          libstagefright.so
                        No          libmtp.so
                        No          libexif.so
                        No          libstagefright_amrnb_common.so
                        No          libmedia_jni.so
                        No          libexif_jni.so
                        No          libcommon_time_client.so
                        No          libnbaio.so
                        No          libeffects.so
                        No          libaudioflinger.so
                        No          libvideoeditor_osal.so
                        No          libvideoeditor_videofilters.so
                        No          libvideoeditorplayer.so
                        No          libvideoeditor_core.so
                        No          libvideoeditor_jni.so
                        No          librs_jni.so
                        No          libandroid.so
                        No          libwilhelm.so
                        No          libOpenSLES.so
                        No          libjnigraphics.so
                        No          libwebviewchromium.so
                        No          libwebviewchromium_plat_support.so
                        No          libjavacrypto.so
                        No          libgsl.so
                        No          libadreno_utils.so
                        No          libEGL_adreno.so
                        No          libGLESv1_CM_adreno.so
                        No          libGLESv2_adreno.so
                        No          eglsubAndroid.so
                        No          libsc-a3xx.so
                        No          libqdutils.so
                        No          libmemalloc.so
                        No          gralloc.msm8974.so
0x77dbd638  0x77eb97b8  No          /Users/jpuig/Development/test/git/test_lib-protoype/java/test_Android/obj/local/armeabi/libtest-java.so

有任何方法可以手动加载此库或其他内容?在制作文件中,我使用以下内容:

包括$(clear_vars)

###### 
LOCAL_CPPFLAGS += -D DEBUG=1 -D NDK_DEBUG=1 
LOCAL_CFLAGS += -D DEBUG=1 -D NDK_DEBUG=1 
APP_OPTIM := debug
APP_CFLAG := -g -ggdb -O0
######

非常感谢您的时间!

我设法修复了它!

我正在将图书馆加载到另一个类中,当按下按钮时,我的主动行为正在调用它,因此,当GDB准备就绪时,没有加载的库...我认为GDB会在运行时拾取新库,所以为了加载库,我刚刚在第一个称为类的静态构造函数中添加了以下几行:

static {
        System.loadLibrary("test-java");
    }