Android / GDB – Головные боли – не могут найти символы отладки

GDB начинает давать мне головную боль. Кажется, что-то странное происходит с тем, как работает GDB.

Obj / local / armeabi / содержит как список всех файлов .so, используемых в проекте, которые НЕ удалены, а также каталог с именем objs-debug, который содержит кучу файлов .o и .od.

При запуске ndk-gdb кажется, что ни один из файлов .so даже не загружен.

Я попытался вручную изменить файл gdb.setup, но, видимо, при запуске gdbserver файл заменяется своей версией вещей;)

nm -a -C on libmylibary.so показывает тонну символов.

Кажется, он не загружает файлы .so или даже не ищет папку objs-debug. Тьфу!

Любая помощь, как всегда, очень ценится.

 [root@xyz SviCore]# /Android/ndk/ndk-gdb --start --force --verbose Android NDK installation path: /Android/ndk Using default adb command: /Android/sdk/platform-tools/adb ADB version found: Android Debug Bridge version 1.0.26 Using final ADB command: '/Android/sdk/platform-tools/adb' Using auto-detected project path: . Found package name: com.svi.core ABIs targetted by application: armeabi Device API Level: 10 Device CPU ABIs: armeabi-v7a armeabi Compatible device ABI: armeabi Found debuggable flag: true Found device gdbserver: /data/data/com.svi.core/lib/gdbserver Using gdb setup init: /root/XXXX/YYYY/ZZZZ/android/SviCore/libs/armeabi/gdb.setup Using toolchain prefix: /Android/ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi- Using app out directory: /root/XXXX/YYYY/ZZZZ/android/SviCore/obj/local/armeabi Found data directory: '/data/data/com.svi.core' Found first launchable activity: .SviCore Launching activity: com.svi.core/.SviCore ## COMMAND: /Android/sdk/platform-tools/adb shell am start -n com.svi.core/.SviCore ## COMMAND: /Android/sdk/platform-tools/adb shell sleep 2 Found running PID: 2351 Launched gdbserver succesfully. Setup network redirection ## COMMAND: /Android/sdk/platform-tools/adb forward tcp:5039 localfilesystem:/data/data/com.svi.core/debug-socket ## COMMAND: /Android/sdk/platform-tools/adb shell run-as com.svi.core lib/gdbserver +debug-socket --attach 2351 ## COMMAND: /Android/sdk/platform-tools/adb pull /system/bin/app_process /root/XXXX/YYYY/ZZZZ/android/SviCore/obj/local/armeabi/app_process Attached; pid = 2351 Listening on sockaddr socket debug-socket 65 KB/s (5720 bytes in 0.085s) Pulled app_process from device/emulator. ## COMMAND: /Android/sdk/platform-tools/adb pull /system/lib/libc.so /root/XXXX/YYYY/ZZZZ/android/SviCore/obj/local/armeabi/libc.so 917 KB/s (273940 bytes in 0.291s) 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=x86_64-linux-gnu --target=arm-elf-linux". (no debugging symbols found) 

Кажется, что символы сообщения об ошибках действительно не имеют значения. В этом случае убедитесь, что ваши общие библиотеки скомпилированы с -O0 или -O1 и -g -ggdb, чтобы помочь gdb выбрать эти символы отладки после компиляции общей библиотеки.

Если у вас возникли проблемы (в командной строке gdb), «info sharedLibrary», «где» или «обратная трассировка», чтобы определить, действительно ли gdb может найти, где он находится.

Попробуйте добавить в файл gdb.setup следующее:

  set solib-search-path ./obj/local/armeabi