2009-05-23 14 views
1

Ich debugge meine Anwendung auf dem iPhone (OS 2.0) mit X-Code 3.1 Iphone SDK 3.0 Beta 5. Meine Anwendung stürzt ab und gibt eine Nachricht * Beenden App aufgrund der nicht abgefangenen Ausnahme 'NSRangeException', Grund: '* - [NSCFArray insertObject: atIndex:]: index (8) über Grenzen (8)' 2009-05-23 17: 13: 32,304 myApp [405: 5a07] Stack: ( 808.163.835, 806.099.672, 807.978.623, 807.978.527, 812.332.907, 812.067.179, 812.067.103, 126.035, 812.081.649, 812.081.343,)Suche nach Ausnahme in Objective c code

In gdb wenn ich Befehle geben (gdb) Infozeile 126035 Die Zeilennummer 126035 liegt außerhalb des zulässigen Bereichs für "/ Benutzer/videomac/manish/EXPLab/2009-05-18-12-27 myApp/main.m".

(GDB) Infozeile * 126.035 Linie 527 von "/ Users/videomac/manish/EXPLab/2009-05-18-12-27 myApp/Klassen/PlaybackThread/Playback.m" bei der Adresse beginnt 0x1ec52 < - [Wiedergabe startPlaybackThread:] + 514> und endet bei 0x1ec6a < - [Wiedergabe startPlaybackThread:] + 538>.

bedeutet dies, dass der Absturz in meiner Methode Code ist [Wiedergabe startPlaybackThread:] dann was bedeutet die Nr. +514 und +538 bedeuten sie Linie nein?

Gibt es eine andere Möglichkeit, Ursachen für Abstürze zu finden?

Antwort

1

Über den ersten Fehler, den Sie erwähnen, von -insertObject:atIndex: Dokumentation:

Wichtige: wenn Index eine NSRangeException Hebt größer ist als die Anzahl der Elemente im Array.

Ich würde nach Aufrufen dieser Methode suchen, um herauszufinden, welche den Fehler verursacht.

Die Nummern +514 und +538 geben einen Offset vom Code der Anweisungen kurz zuvor.

3

Der einfachste Weg, um herauszufinden, wo Ihre Ausnahme passiert, ist das Setzen von Haltepunkten auf - [NSException raise] und objc_exception_throw in gdb. Dann brechen Sie, sobald es passiert, und Sie können den Stapel an diesem Punkt untersuchen.

+0

wie Sie Haltepunkte auf setzen - [NSException raisen] und objc_exception_throw in gdb –

Verwandte Themen