(gdb) b f_close Breakpoint 1 at 0x5c309018: file api/test.c, line 359. (gdb) c Continuing. [New Thread 24337] [Switching to Thread 24337] Breakpoint 1, f_close () at api/test.c:359 359 int err = 0; (gdb) n Program received signal SIGILL, Illegal instruction.Если после этого продолжить выполнение, то программа упадёт по сигналу SIGILL или SIGSEGV. В NDK есть специальный скрипт - ndk-gdb, который запускает gdbserver и делает ещё кучу других вещей. В том числе он исправляет эту проблему.
Решение
Загрузите с вашего Андройд-устройства следующие файлы:
* /system/lib/libc.so * /system/bin/app_process * /system/bin/linkerИ поместите их в папку с вашими бинарниками на хосте (например ./obj/local/armeabi/). После этого воспользуйтесь следующими командами для подключения к gdbserver'у:
file obj/local/armeabi/app_process target remote :5039 set solib-search-path obj/local/armeabi/Убедитесь что бинарники подгрузились с помощью команд info sharedlibrary и info file.
Теперь можно пошагово выполнять приложение без проблем!