web-dev-qa-db-ja.com

iPhone Simulatorで生成されたクラッシュログ?

IPhone Simulatorで生成されたクラッシュログはありますか?

シミュレータは頻繁にクラッシュしますが、コンソールにトレースを残しません...クラッシュログが役立ちます。

88
Raptor

コンソールには、シミュレーターで実行されているアプリからのNSLog()出力が表示されます。クラッシュログはファイルに保存されます。

私は私のホームディレクトリの下でいくつかを見つけました

~/Library/Logs/DiagnosticReports/

ファイルの拡張子は.crashです

デバッガーがEXC_BAD_ACCESS信号を取得した場合でも、それらを生成する方法は、まだ理解できていません。


更新

現在、(OSX 10.11.6)、. crashは~/Library/Logs/DiagnosticReportsにログを記録しますが、これはエミュレーター自体がクラッシュするときです。 appクラッシュ(ただし、エミュレーターデバイスは引き続き正常に実行されています)のログは、次のとおりです。

〜/ Library/Logs/CoreSimulator

クラッシュごとに、一意のIDを持つサブフォルダーがあります。日付でソートして、最近のクラッシュが最初のサブフォルダーになるようにします。その中から、stderr.logsystem.logを確認することから始めます。

CoreSimulatorの直下も、CoreSimulator.logおよびSimulator.logを参照してください。

145
ohhorob

UtilitiesにあるOS X Consoleアプリでこれを見ることができると確信しています。私が間違っている場合、私にこれを削除するので、私に完全に投票してください。


更新:

具体的には(OSX 10.11.6以降)、

エミュレーターでアプリがクラッシュすると、サブフォルダー(一意のID)が次の場所に追加されます。

〜/ Library/Logs/CoreSimulator

その中で、stderr.logおよびsystem.log

エミュレータそれ自体がクラッシュすると、サブフォルダが追加されます:

〜/ Library/Logs/DiagnosticReports

このパスと混同しないでください

/ライブラリ/ Logs

~開始時)、Macに関するさまざまなレポートがあります。

16
bpapa

これは特別な場合に私のために働いたものです...私のアプリは終了時にSIGKILLでクラッシュしていました。 main.mに数秒間例外が表示されると、アプリの終了が完了するため、バックトレースを取得する機会がなくなります。

「シミュレータはクラッシュログをどこに保存するか」について多くの検索を行いましたが、答えを見つけることができませんでした。ただし、次のトリックが非常に便利で、その場でクラッシュログを取得できました。

基本的に、/ Applications/Utilities/CrashReporterPrefs.appを開き、設定を「Developer」に変更します。これにより、CrashReporterは、アプリがクラッシュした後、クラッシュログを含むポップアップを表示します。

Appleのこのドキュメントの「iOSシミュレータコンソールとクラッシュログの表示」セクションでこれを見つけました。 http://developer.Apple.com/library/ios/#documentation/Xcode/Conceptual/ios_development_workflow/125- Using_iOS_Simulator/ios_simulator_application.html

5
dana_a

これははるかに信頼できます。ほんの数ステップで、ソース行番号のメソッド名を見つけることができました。

  1. .app .dSYMファイルがあるディレクトリにcd
  2. /Developer/Platforms/iPhoneOS.platform/Developer/usr/libexec/gdb/gdb-arm-Apple-darwin MyApp.app/MyAppを実行します
  3. asm-demangleをオンに設定
  4. 印刷シンボルファイル名をオンに設定
  5. p/a 0×00015c64->「コンソール」アプリでクラッシュログを開くか、単に.crashファイルをダブルクリックして取得したアドレス。
1
Gamma-Point

クラッシュクラッシュログは〜/ Library/Logs/CrashReporterの下に表示されます。

  • IPhoneシミュレータプログラムがクラッシュした場合(シミュレータ内で実行されているiPhoneアプリではありません)、iPhoneSimulatorのエントリがあります。
  • シミュレーター内のiPhoneアプリがクラッシュすると、アプリの表示名とともにクラッシュログが表示されます。

Xcodeは接続されたデバイスからクラッシュログを取得すると、〜/ Library/Logs/CrashReporter/MobileDeviceのサブフォルダーに保存します。

1
Walt Sellers

私にとっては、デバッガーウォッチウィンドウに追加した式でした。ブレークポイントにヒットすると、不正な式によりXCodeがセグメンテーション違反になりました。

0
pTymN