104

iPhoneシミュレータによって生成されたクラッシュログはありますか?

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

4

7 に答える 7

169

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

ホームディレクトリの下にあるものを見つけました

~/Library/Logs/DiagnosticReports/

彼らはのファイル拡張子を持っています.crash

私がまだ理解していないことは、デバッガーがEXC_BAD_ACCESSシグナルを取得した場合でも、それらを生成させる方法です。


アップデート

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

〜/ Library / Logs / CoreSimulator

クラッシュごとに、一意のIDを持つサブフォルダーがあります。最近のクラッシュが最初のサブフォルダーになるように、日付で並べ替えます。stderr.logその中で、とを見てから始めsystem.logます。

また、直下、およびCoreSimulatorを参照してください。CoreSimulator.logSimulator.log

于 2009-12-17T17:37:55.110 に答える
21

これは、ユーティリティにあるOSXコンソールアプリで確認できると確信しています。私が間違っている場合は、必ず私に投票してください。これを削除します。


アップデート:

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

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

〜/ Library / Logs / CoreSimulator

stderr.logその中で、とを調べることから始めsystem.logます。

エミュレータ自体がクラッシュすると、サブフォルダが次の場所に追加されます。

〜/ Library / Logs / DiagnosticReports

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

/ Library / Logs

(開始時に欠けている~)、これはあなたのMacについての異なるレポートを持っています。

于 2009-12-08T04:03:46.417 に答える
5

これが特別な場合に私のために働いたものです...私のアプリはそれが終了したときに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

于 2011-11-03T19:12:17.840 に答える
2

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

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

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

于 2012-02-14T02:39:33.143 に答える
1

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

  1. .appおよび.dSYMファイルを含むディレクトリにcd
  2. /Developer/Platforms/iPhoneOS.platform/Developer/usr/libexec/gdb/gdb-arm-apple-darwin MyApp.app/MyAppを実行します
  3. printasm-demangleをオンに設定
  4. 印刷記号-ファイル名をに設定
  5. p / a0×00015c64->「コンソール」アプリでクラッシュログを開くか、.crashファイルをダブルクリックして取得したアドレス。
于 2010-12-09T22:33:27.440 に答える
0

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

于 2012-12-06T22:17:53.050 に答える
0

また、この関連する回答を確認することをお勧めします:https ://stackoverflow.com/a/14984297/679240

上記の回答はいずれも、「BigSur」OSバージョンでは機能しませんでした。ログを見つける唯一の方法は、「コンソール」アプリ(アプリケーション/ユーティリティ/コンソール)を使用することでした。

于 2020-11-27T13:08:35.097 に答える