it-swarm.com.de

Mit dem iPhone Simulator erstellte Absturzprotokolle?

Gibt es Absturzprotokolle, die vom iPhone Simulator erstellt wurden?

der Simulator stürzt häufig ab, hinterlässt jedoch keine Spuren in der Konsole. Das Absturzprotokoll ist hilfreich.

88
Raptor

Die Konsole zeigt die Ausgabe von NSLog() einer im Simulator ausgeführten App an. Die Absturzprotokolle werden in einer Datei gespeichert.

Ich habe einige in meinem Home-Verzeichnis unter gefunden

~/Library/Logs/DiagnosticReports/

Sie haben eine Dateierweiterung von .crash

Was ich noch nicht herausgefunden habe, ist, wie ich sie zum Generieren bringen kann, selbst wenn der Debugger das EXC_BAD_ACCESS Signal.


pdate

Derzeit (OSX 10.11.6) meldet sich die .crash in ~/Library/Logs/DiagnosticReports, wenn der Emulator selbst abstürzt . Protokolle für eine App , die abstürzt (aber das Emulatorgerät läuft noch einwandfrei), befinden sich in:

~/Library/Logs/CoreSimulator

Pro Absturz gibt es einen Unterordner mit einer eindeutigen ID. Nach Datum sortieren, sodass Ihr letzter Absturz der erste Unterordner ist. Betrachten Sie zunächst stderr.log und system.log.

Auch direkt unter CoreSimulator, siehe CoreSimulator.log und Simulator.log.

145
ohhorob

Ich bin mir ziemlich sicher, dass Sie dies in der OS X Console-App unter Dienstprogramme sehen können. Wenn ich mich jedoch irre, stimmen Sie mich unbedingt ab, damit ich dies lösche.


AKTUALISIEREN:

Insbesondere (ab OSX 10.11.6)

Wenn eine App im Emulator abstürzt, wird ein Unterordner (mit einer eindeutigen ID) hinzugefügt zu:

~/Library/Logs/CoreSimulator

Beginnen Sie damit, stderr.log und system.log.

Wenn der Emulator selbst abstürzt, wird ein Unterordner hinzugefügt zu:

~/Library/Logs/DiagnosticReports

Verwechsle diesen Weg nicht mit

/ Bibliothek/Protokolle

(Fehlen ~ at start), der unterschiedliche Berichte über Ihren Mac enthält.

16
bpapa

Hier ist etwas, das in einem speziellen Fall für mich funktioniert hat ... Meine App stürzte beim Beenden mit SIGKILL ab. Ich würde die Ausnahme in main.m für ein paar Sekunden sehen, und dann würde die App beendet - also keine Chance, die Rückverfolgung zu bekommen.

Ich habe viel nach „Wo speichert der Simulator seine Absturzprotokolle?“ Gesucht und nie eine Antwort gefunden. Der folgende Trick hat sich jedoch als nützlich erwiesen und ich konnte das Absturzprotokoll sofort abrufen:

Öffnen Sie grundsätzlich /Applications/Utilities/CrashReporterPrefs.app und ändern Sie die Einstellung in "Developer". Dies führt dazu, dass CrashReporter ein Popup mit dem Absturzprotokoll anzeigt, nachdem Ihre App abgestürzt ist.

Ich habe dies im Abschnitt "Anzeigen der iOS Simulator-Konsole und der Absturzprotokolle" in diesem Dokument von Apple gefunden: http://developer.Apple.com/library/ios/#documentation/Xcode/Conceptual/ios_development_workflow/125- Using_iOS_Simulator/ios_simulator_application.html

5
dana_a

Das ist viel zuverlässiger. In nur wenigen Schritten konnte ich die Quell-Zeilennummer und den Methodennamen finden:

  1. cD in das Verzeichnis mit den Dateien .app & .dSYM
  2. führen Sie /Developer/Platforms/iPhoneOS.platform/Developer/usr/libexec/gdb/gdb-arm-Apple-darwin MyApp.app/MyApp aus
  3. setze print asm-demangle auf
  4. setze print symbol-filename auf
  5. p/a 0 × 00015c64 -> Adresse erhalten, indem Sie das Absturzprotokoll in der App „Console“ öffnen oder einfach auf die .crash-Datei doppelklicken.
1
Gamma-Point

Die Absturzprotokolle werden unter ~/Library/Logs/CrashReporter angezeigt.

  • Wenn das iPhone-Simulator-Programm abstürzt (nicht die iPhone-App, die im Simulator ausgeführt wird), wird ein Eintrag für iPhoneSimulator angezeigt.
  • Wenn die iPhone-App im Simulator abstürzt, wird das Absturzprotokoll mit dem Anzeigenamen der App angezeigt.

Wenn Xcode Absturzprotokolle von einem verbundenen Gerät erhält, werden diese in Unterordnern von ~/Library/Logs/CrashReporter/MobileDevice gespeichert

1
Walt Sellers

Für mich war es ein Ausdruck, den ich dem Debugger-Überwachungsfenster hinzugefügt hatte. Wenn ein Haltepunkt erreicht wurde, verursachte der fehlerhafte Ausdruck einen Segfault von XCode.

0
pTymN