2010-07-19 7 views
9

otrzymuję następujący błąd debugera kiedy napotka punkt przerwania na urządzeniu:Błąd z Debugger: Poprzedni rama wewnętrzna do tej ramki (gdb nie mógłby rozwijać przeszłość tej ramce)

błędu z Debugger: Poprzedni ramę wewnętrzną do ta ramka (gdb nie mogła się rozwijać po tej ramce)

Zjawisko to występuje, gdy aplikacja osiągnie punkt przerwania. Jeśli kliknę przycisk "Kontynuuj" w debugerze, będzie on kontynuowany aż do następnego punktu przerwania, kiedy pojawi się ten sam problem.

Co oznacza ten komunikat i, co ważniejsze, jak mogę to naprawić? Debugowałem tę aplikację od dłuższego czasu, nie napotykając tego błędu.

Próbowałem czystej kompilacji, a także ponownego uruchamiania komputera Mac. Jestem na XCode 3.2.3, iOS 4.0.1.

Odpowiedz

17

Zacząłem również mieć ten problem, a dla mnie było to spowodowane generowaniem kodu LLVM. Zmieniłem ustawienie kompilatora w moim celu z "LLVM GC 4.2" na "GCC 4.2", wykonałem czystą przebudowę, a debugger znów był szczęśliwy.

Może to być również spowodowane uszkodzeniem stosu, więc możliwe, że masz uzasadniony błąd. W moim przypadku jednak nie mogłem ustawić punktów przerw w dowolnym miejscu i czasie, nawet w applicationDidFinishLaunching :. To wskazało palcem na ustawienie kompilacji.

Mam nadzieję, że to pomoże!

+0

Musiałem również przejść do zwykłego GCC 4.2 we wszystkich moich referencjach dotyczących różnych projektów. Jeśli jakikolwiek kod zawarty w kompilacji z dowolnego miejsca miał włączone LLVM, debugger nie mógł odczytać stosu. –

+0

To wszystko, dziękuję. Jestem jednak rozczarowany, ponieważ LLVM podobno produkuje szybsze pliki binarne. Sądzę, że będę musiał poczekać, aż rozwiążą się problemy. –

+0

Zgadzam się. Mam go włączonego tylko w moich kompilacjach Release i używam starego GCC do debugowania. –

Powiązane problemy