Удаленная отладка программы Android NDK из eclipse

Android (gdbserver работает в Android) говорит:

gdb: невозможно получить место для точки останова создания потока: запрошенное событие не поддерживается

Итак, как я могу узнать команды gdb, отправленные eclipse?

P.S. Можно отлаживать в оболочке cygwin, но нельзя отлаживать в eclipse. Я не знаю, какие команды отправлены eclipse.


person lovespring    schedule 30.01.2011    source источник


Ответы (1)


Gdbserver, входящий в состав Android NDK (по крайней мере, начиная с r4b), не поддерживает отладку в нескольких потоках. У меня была номинальная удача после комментария Джона Мишело здесь:

http://honeypod.blogspot.com/2008/01/debug-native-application-for-android.html

Похоже, теперь поддерживаются многопоточные приложения. Ключевым моментом является запуск клиента GDB из того, который установлен в дереве исходных текстов Android по адресу prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-gdb.

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

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

person Jason LeBrun    schedule 30.01.2011