2012-09-26 14 views
7

Zainstalowałem Sequoyah Android Native Support, a teraz mogę uruchomić tryb debugowania. Mam punkt przerwania w tym samym wierszu, w którym nazywam metodę natywną, więc gdy uruchamiam tryb debugowania Java, zaćmienie zatrzymuje się w tym wierszu, uruchamiam 'ndk-gdb', a ja zajmuję się trybem debugowania C/C++, I zobacz, jak konsola coś robi. Ale jak mogę ustawić C punktów przerwania? Ponieważ mój kod C jest biblioteką .so, więc nie mogę umieścić punktów przerwania w tym pliku. Mam floder JNI, w którym znajdują się pliki .c i .h, ale nie zatrzymuje się, gdy umieszczam punkty przerwania. Dziennik Eclipse rozpoznaje punkty przerwania, ale drukuje błąd.Jak debugować natywną aplikację dla systemu Android?

break-insert com_example_pruebaffmpeg_MainActivity.c: 4323 błąd, msg = "Nie stół symbol jest ładowany Użyj \". \ "Pliku polecenia."

+0

Czy skompilowałeś swój kod C z dołączonymi informacjami/symbolami debugowania? Jeśli kompilujesz z GCC, upewnij się, że w opcjach kompilacji i łączenia jest włączona opcja '-g'. –

+0

Nie wiem, co mi tłumaczysz. Używam ndk-build do kompilacji mojego kodu C i uzyskania biblioteki .so. I uruchamiam projekt Android w środowisku Eclipse za pomocą narzędzia NDK. – beni

+1

Dla ndk-build istnieją inne kroki, które należy wykonać, aby zbudować z symbolami debugowania. Spójrz na [to pytanie] (http://stackoverflow.com/questions/8934575/debugging-android-ndk-native-apps) –

Odpowiedz

1

Czy próbowałeś odinstalować Sequoyah i po prostu używając ADT? Od wersji 20, Eclipse ADT plugin może debugować projekty NDK łatwiej i bardziej niezawodnie niż stary sposób robienia Sequoyah.

+0

odinstalowałem Sequoyah i próbowałem uruchomić debugger za pomocą ADT , ale nie działa. Czy możesz wyjaśnić nieco więcej lub opublikować link? – beni

+0

Postępuję zgodnie z instrukcjami w tym [link] (http://tools.android.com/recent/usingthendkplugin), ale debugger nie działa – beni

+0

I konsoli wydrukować ten błąd ----> ostrzeżenie: podczas parsowanie listy bibliotek docelowych (w linii 2): Nie zdefiniowano segmentu dla/system/bin/linker BFD:/home/beni/workspace/Prueba/obj/local/armeabi-v7a/linker: warning: sh_link nie ustawiono dla sekcji ' .ARM.exidx ' Ostrzeżenie: Nie można załadować symboli bibliotek współdzielonych dla 63 bibliotek, np. libstdC++. so. Użyj polecenia "info sharedlibrary", aby zobaczyć pełną listę. Potrzebujesz "set solib-search-path" lub "set sysroot"? Nie załadowano tabeli symboli. Użyj polecenia "file". – beni

Powiązane problemy