Android / GDB - Головные боли - не удается найти символы отладки - PullRequest
4 голосов
/ 30 августа 2011

ГБД начинает вызывать у меня головную боль.Кажется, что-то странное происходит с тем, как работает 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)

Ответы [ 2 ]

1 голос
/ 15 ноября 2012

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

 set solib-search-path ./obj/local/armeabi
1 голос
/ 05 сентября 2011

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

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

...