【问题标题】:android ndk-gdb fails to load symbolsandroid ndk-gdb 无法加载符号
【发布时间】:2012-03-22 22:57:49
【问题描述】:

使用android-ndk-r7b/samples/hello-jni作为调试起点,我用

构建了jni

ndk-build V=1 NDK_DEBUG=1

rm -f ./libs/armeabi/lib*.so ./libs/armeabi-v7a/lib*.so ./libs/x86/lib*.so
rm -f ./libs/armeabi/gdbserver ./libs/armeabi-v7a/gdbserver ./libs/x86/gdbserver
rm -f ./libs/armeabi/gdb.setup ./libs/armeabi-v7a/gdb.setup ./libs/x86/gdb.setup
Gdbserver      : [arm-linux-androideabi-4.4.3] libs/armeabi/gdbserver
mkdir -p ./libs/armeabi
install -p /cygdrive/c/Users/pcarreir/android-ndk-r7b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/gdbserver ./libs/armeabi/gdbserver
Gdbsetup       : libs/armeabi/gdb.setup
mkdir -p ./libs/armeabi
/cygdrive/c/Users/pcarreir/android-ndk-r7b/prebuilt/windows/bin/echo "set solib-search-path ./obj/local/armeabi" > ./libs/armeabi/gdb.setup
/cygdrive/c/Users/pcarreir/android-ndk-r7b/prebuilt/windows/bin/echo "directory C:/Users/pcarreir/android-ndk-r7b/platforms/android-8/arch-arm/usr/include jni C:/Users/pcarreir/android-ndk-r7b/sources/cxx-stl/system" >> ./libs/armeabi/gdb.setup
Cygwin         : Generating dependency file converter script
mkdir -p obj/
mount | awk -f /cygdrive/c/Users/pcarreir/android-ndk-r7b/build/awk/gen-cygwin-deps-converter.awk > obj/convert-dependencies.sh && chmod +x obj/convert-dependencies.sh
Compile thumb  : hello-jni <= hello-jni.c
/cygdrive/c/Users/pcarreir/android-ndk-r7b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/windows/bin/arm-linux-androideabi-gcc -MMD -MP -MF ./obj/local/armeabi/objs-debug/hello-jni/hello-jni.o.d.org -fpic  -ffunction-sections  -funwind-tables  -fstack-protector  -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__  -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__   -Wno-psabi -march=armv5te  -mtune=xscale  -msoft-float  -mthumb  -Os  -fomit-frame-pointer  -fno-strict-aliasing  -finline-limit=64  -Ijni  -DANDROID  -Wa,--noexecstack  -O0 -g  -IC:/Users/pcarreir/android-ndk-r7b/platforms/android-8/arch-arm/usr/include  -c   jni/hello-jni.c -o ./obj/local/armeabi/objs-debug/hello-jni/hello-jni.o  && ./obj/convert-dependencies.sh ./obj/local/armeabi/objs-debug/hello-jni/hello-jni.o.d
SharedLibrary  : libhello-jni.so
/cygdrive/c/Users/pcarreir/android-ndk-r7b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/windows/bin/arm-linux-androideabi-g++  -Wl,-soname,libhello-jni.so  -shared  --sysroot=C:/Users/pcarreir/android-ndk-r7b/platforms/android-8/arch-arm  ./obj/local/armeabi/objs-debug/hello-jni/hello-jni.o    C:/Users/pcarreir/android-ndk-r7b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.4.3/libgcc.a    -Wl,--no-undefined -Wl,-z,noexecstack   -lc -lm  -o obj/local/armeabi/libhello-jni.so
Install        : libhello-jni.so => libs/armeabi/libhello-jni.so
mkdir -p ./libs/armeabi
install -p ./obj/local/armeabi/libhello-jni.so ./libs/armeabi/libhello-jni.so
/cygdrive/c/Users/pcarreir/android-ndk-r7b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/windows/bin/arm-linux-androideabi-strip --strip-unneeded ./libs/armeabi/libhello-jni.so

我现在开始调试过程。 1.我启动了一个模拟器 2. 我在 Eclipse 中调试应用程序。 3.我确定我在hello-jni目录下 4.我输入ndk-gdb --verbose

我查看了有关该主题的其他帖子,ndk-gdb 输出似乎总是以如下所示结束

warning: shared library handler failed to enable breakpoint
0xafd0c51c in epoll_wait () from /home/zayac/code/android-ndk-r5/samples/hello-jni2/obj/local/armeabi/libc.so

它似乎已经准备好使用“epoll_wait()...”文本了。

当我运行 ndk-gdb --verbose 时,我从未看到该文本。我只是得到警告和(gdb)提示。这是输出...

Android NDK installation path: /cygdrive/c/Users/pcarreir/android-ndk-r7b Using default adb command: /cygdrive/c/Program Files (x86)/Android/android-sdk/platform-tools/adb ADB version found: Android Debug Bridge version 1.0.29 Using ADB flags: Using auto-detected project path: . Found package name: com.example.hellojni ABIs targetted by application: armeabi Device API Level: 10 Device CPU ABI: armeabi Compatible device ABI: armeabi Found debuggable flag: true Found device gdbserver: /data/data/com.example.hellojni/lib/gdbserver Using gdb setup init: ./libs/armeabi/gdb.setup Using toolchain prefix: /cygdrive/c/Users/pcarreir/android-ndk-r7b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/windows/bin/arm-linux-androideabi- Using app out directory: ./obj/local/armeabi Found data directory: '/data/data/com.example.hellojni' Found running PID: 7806 Launched gdbserver succesfully. Setup network redirection ## COMMAND: /cygdrive/c/Program Files (x86)/Android/android-sdk/platform-tools/adb shell run-as com.example.hellojni lib/gdbserver +debug-socket --attach 7806 ## COMMAND: /cygdrive/c/Program Files (x86)/Android/android-sdk/platform-tools/adb forward tcp:5039 localfilesystem:/data/data/com.example.hellojni/debug-socket Attached; pid = 7806 ## COMMAND: /cygdrive/c/Program Files (x86)/Android/android-sdk/platform-tools/adb pull /system/bin/app_process obj/local/armeabi/app_process Listening on sockaddr socket debug-socket 19 KB/s (5660 bytes in 0.284s) Pulled app_process from device/emulator. ## COMMAND: /cygdrive/c/Program Files (x86)/Android/android-sdk/platform-tools/adb pull /system/lib/libc.so obj/local/armeabi/libc.so 56 KB/s (273868 bytes in 4.730s) Pulled libc.so from device/emulator. GNU gdb 6.6 Copyright (C) 2006 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "--host=i586-mingw32msvc --target=arm-elf-linux". (no debugging symbols found) Error while mapping shared library sections: /system/bin/linker: No such file or directory. Error while mapping shared library sections: libc.so: No such file or directory. Error while mapping shared library sections: libstdc++.so: No such file or directory. Error while mapping shared library sections: libm.so: No such file or directory. Error while mapping shared library sections: liblog.so: No such file or directory. Error while mapping shared library sections: libcutils.so: No such file or directory. Error while mapping shared library sections: libz.so: No such file or directory. Error while mapping shared library sections: libutils.so: No such file or directory. Error while mapping shared library sections: libbinder.so: No such file or directory. Error while mapping shared library sections: libexpat.so: No such file or directory. Error while mapping shared library sections: libcrypto.so: No such file or directory. Error while mapping shared library sections: libicuuc.so: No such file or directory. Error while mapping shared library sections: libicui18n.so: No such file or directory. Error while mapping shared library sections: libsqlite.so: No such file or directory. Error while mapping shared library sections: libssl.so: No such file or directory. Error while mapping shared library sections: libnativehelper.so: No such file or directory. Error while mapping shared library sections: libnetutils.so: No such file or directory. Error while mapping shared library sections: libEGL.so: No such file or directory. Error while mapping shared library sections: libwpa_client.so: No such file or directory. Error while mapping shared library sections: libhardware_legacy.so: No such file or directory. Error while mapping shared library sections: libpixelflinger.so: No such file or directory. Error while mapping shared library sections: libhardware.so: No such file or directory. Error while mapping shared library sections: libui.so: No such file or directory. Error while mapping shared library sections: libgui.so: No such file or directory. Error while mapping shared library sections: libsurfaceflinger_client.so: No such file or directory. Error while mapping shared library sections: libcamera_client.so: No such file or directory. Error while mapping shared library sections: libemoji.so: No such file or directory. Error while mapping shared library sections: libjpeg.so: No such file or directory. Error while mapping shared library sections: libskia.so: No such file or directory. Error while mapping shared library sections: libGLESv1_CM.so: No such file or directory. Error while mapping shared library sections: libskiagl.so: No such file or directory. Error while mapping shared library sections: libdvm.so: No such file or directory. Error while mapping shared library sections: libGLESv2.so: No such file or directory. Error while mapping shared library sections: libETC1.so: No such file or directory. Error while mapping shared library sections: libsonivox.so: No such file or directory. Error while mapping shared library sections: libmedia.so: No such file or directory. Error while mapping shared library sections: libnfc_ndef.so: No such file or directory. Error while mapping shared library sections: libandroid_runtime.so: No such file or directory. Error while mapping shared library sections: libvorbisidec.so: No such file or directory. Error while mapping shared library sections: libstagefright_amrnb_common.so: No such file or directory. Error while mapping shared library sections: libstagefright_enc_common.so: No such file or directory. Error while mapping shared library sections: libstagefright_avc_common.so: No such file or directory. Error while mapping shared library sections: libstagefright_foundation.so: No such file or directory. Error while mapping shared library sections: libstagefright_color_conversion.so: No such file or directory. Error while mapping shared library sections: libstagefright.so: No such file or directory. Error while mapping shared library sections: libmedia_jni.so: No such file or directory. Error while 0xafd0c738 in ?? () gdb: Unable to get location for thread creation breakpoint: requested event is not supported mapping shared library sections: libexif.so: No such file or directory. Error while mapping shared library sections: libsoundpool.so: No such file or directory. Error while mapping shared library sections: libstlport.so: No such file or directory. Error while mapping shared library sections: libwebcore.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 (gdb)

当我输入像 list 这样的 gdb 命令时,我得到

(gdb) 没有加载符号表。使用“文件”命令。

任何帮助都会很棒!

【问题讨论】:

    标签: android android-ndk gdb


    【解决方案1】:

    我遇到了同样的问题,因为 libs/armeabi/gdb.setup 包含 CR (CRLF) 字符。 在开发主机(项目目录)上删除它们后,它无需重新安装即可工作。

    gdb.setup 似乎是由 ndk-build 编写的,它似乎在 Windows(而不是 Linux)上引入了 CR 字符。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      • 1970-01-01
      • 2013-07-12
      • 2016-05-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多