Удаленная отладка программы Android NDK из Eclipse - PullRequest
3 голосов
/ 30 января 2011

Android (запуск gdbserver в Android) говорит:

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

Итак, как можноЯ знаю команды gdb, отправленные eclipse?

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

1 Ответ

4 голосов
/ 30 января 2011

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 не сможет отлаживать инициализаторы разделяемой библиотеки и отслеживать явно загруженный динамический код.

...