Próbuję zdalnie debugować czysty program C
na urządzeniu z systemem Android. Urządzenie z systemem Android (miejsce docelowe) jest połączone przez USB z komputerem głównym.Zdalne debugowanie czystego programu C z GDB
Co zrobiłem było: Skopiowane z tarczynastępujące pliki: /system/lib
, /vendor/lib
, /system/bin/app_process
i /system/bin/linker
.
docelowa:
- Skopiowane
gdbserver
zNDK
do urządzenia docelowego - wysłał
exe
że chcę debugowania - prowadzona serwer gdb na cel za pomocą
./gdbserver :5039 exec
- to w zasadzie wykonuje proces i otrzymuje
pid
- to w zasadzie wykonuje proces i otrzymuje
Host:
- włączeniu portu
adb forward tcp:5039 tcp:5039
- prowadzona:
arm-eabi-gcc exec
. - Następnie w gdb:
set solib-search-path ...
, z bibliotek, które wyciągnąłem wcześniej od celutarget remote :5039
arm-eabi-gcc
można podłączyć do zdalnego procesu, a nawet dalej (c
) wykonanie. Jednak nie mogę ustawić punktów przerwania. Jeśli to zrobię, pojawia się następujący błąd: Cannot access memory at address xxx
.
Czy tu czegoś brakuje?
Dziękuję.
Powiązane: [Debug natywna aplikacja Android] (http://stackoverflow.com/q/18143331), [Jak debugować natywny kod za pomocą ndk-gdb] (http://stackoverflow.com/q/17593284), [Dziwny błąd Gdbserver podczas debugowania natywnej aplikacji] (http://stackoverflow.com/q/26317509), [Debugowanie natywnych aplikacji Android NDK] (http://stackoverflow.com/q/8934575), [Debugowanie natywnego kodu w systemie Android Biblioteka] (http://stackoverflow.com/q/12638849), itp. – jww