Android GDB не загружает общую библиотеку С++

Я пытался отладить общую библиотеку, которую написал на c/c++, но не могу отладить ее с помощью eclipse. Когда я устанавливаю точку останова, она никогда не срабатывает и после выполнения info sharedlibrary в gdb я получаю следующее, подтверждая, что библиотеки там нет (называется 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

Есть ли способ загрузить эту библиотеку вручную или что-то в этом роде?? в файле make я использую следующее:

включить $(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
######

Большое спасибо за ваше время!


person Joan P.S    schedule 03.02.2014    source источник
comment
Разве NDK_DEBUG=1 не должен быть параметром команды ndk-build?   -  person marcinj    schedule 03.02.2014
comment
Это как-то связано с GDB или проблема в том, что библиотека не загружается в процесс во время выполнения? Какова ваша теория, почему процесс должен загружать вашу библиотеку? В любом случае, какой тип проекта вы создаете, обычное приложение с дополнительной библиотекой jni? Нативная активность, в которой вы предоставляете только библиотеку jni? Автономный исполняемый файл с динамической библиотекой? Вы явно загружаете библиотеку из своего кода или ожидаете, что компоновщик сделает вывод, что она необходима?   -  person Chris Stratton    schedule 03.02.2014


Ответы (1)


Мне удалось это исправить!

Я загружал библиотеку в другой класс, и моя MainActivity вызывала ее при нажатии кнопки, поэтому, когда GDB был готов, библиотеки не загружались... Я думал, что GDB подберет новую библиотеку во время выполнения, поэтому для того, чтобы загрузите библиотеку, я только что добавил следующие строки в статический конструктор первого вызываемого класса:

static {
        System.loadLibrary("test-java");
    }
person Joan P.S    schedule 03.02.2014
comment
Кто-нибудь знает способ загрузить его после подключения gdb?? - person Joan P.S; 04.02.2014