Chromeで「Aw、Snap」ダイアログが表示される原因を特定する方法


31

「Aw Snap!」の原因を特定する実用的な方法があるかどうか、誰もが知っていますか。Google Chromeに時々表示されるメッセージ Chromeには、参照できるエラーログがありますか?この問題は、コード内の再帰ループがすべてのメモリを飲み込んでいることが原因であると思われますか?これを確認する方法はありますか?



回答:


28

ここにある説明を参照してください。Chromeでの通常のログについては、次のことを試すことができます。


1
最初のオプションは、この問題を切り分けるのに役立つと思います。devコンソールは、使用するものを出力する前にハングします。
QFDev

2
ログを有効にし、Chromeのクラッシュ時にクラッシュ時にエラーを記録しませんでした。ログ項目への洞察を提供できる参照はありますか?
カディムアリ

logging.hに関するこのChromeページは、あなたが望むものですか?
ヴィニエフ

この回答にリンクの短縮コンテンツを含めてください。リンクが停止すると、古くなります。
マフ

3
この場合、ページがクラッシュすると開発ツールが切断されるため、通常JavaScriptコンソールは役に立ちません。
PawnStar

28

「Aw snap」ページのデバッグに役立つWebサイトにリンクされた公式の Chrome Developers Twitterアカウント:http : //www.chromium.org/for-testers/enable-logging

これらのフラグを使用してChromeを起動することをお勧めします。

--enable-logging --v=1

その場合chrome_debug.log、Chromeのユーザーデータディレクトリ(の親ディレクトリDefault/)またはout\Debugデバッグビルドを使用している場合はバイナリビルドフォルダー()のファイルからクラッシュログを取得できます。


5
この投稿は--enable-logging --v=1 、受け入れられた回答の編集が追加するかなり前に言及したため、賛成票を投じます。
CADが

2

おやおや、スナップ!ページは通常、ソフトウェアのバグに関連する可能性があるプロセスセグメンテーションフォールトクラッシュに関連しています。原因を特定するには、ロギングを有効にするか(他の回答で提案されているように)、コアダンプファイルのバックトレースを分析します(macOSではLinux、たとえばUbuntu)。

原因がわからない場合(たとえば、スタックトレースがメモリアドレスのみで構成されている場合)、Chromeバグ追跡システムで新しいサポートチケットを作成できます(または既にサポートチケットがあるかどうかを再確認します)。レポート中に、chrome://crashes/ページに移動してクラッシュIDをアップロードして含める必要があります。これにより、Chromeメンテナーがメモリアドレスをデバッグシンボルに変換できます。

または、クラッシュダンプを自分でデコードすることもできます。

参照:Google Chromeクラッシュダンプはどこにありますか?


上記を単純化するために、ページがクラッシュする主な理由は次のとおりです。

  • バグを発見しました(Webサイト上またはWebブラウザ自体で)。

    • ウェブサイトのバグ

      • 例:JavaScript VMが割り当てられた最大メモリに達しました(メモリ不足によるクラッシュ)。

        それを確認するには、DevToolsを実行しますを [ メモリ ]タブを確認します。その場合、メモリ不足の可能性があるクラッシュの直前にコードが自動的に一時停止するはずです(例:問題810015)。その場合、問題をWebサイトの所有者に報告するか、JSコードをプロファイルしてバグを見つけます。

    • ブラウザのバグ

      • 拡張機能を無効にするか、シークレットモードで実行することを検討してください。
      • キャッシュファイルの削除を検討してください。
      • バグを報告してください
      • ブラウザを再インストールします。
      • ChromiumDevまたはCanaryなどの異なるバージョンのChromeを使用しますチャンネルます。
      • Epic、Firefox、Opera、Brave、Waterfox、Torchなどのさまざまなブラウザーを使用します。
      • 問題が繰り返し発生する場合は、デバッグシンボルを使用してChromeソースを再コンパイルし、スタックトレースを分析したり、報告したりできます。
  • システムで開いているファイルの最大数に達しました(#787381を参照))。

    Linux / Unix / macOSで、それを確認するには、次を実行します。

    sysctl -a | grep files
    

    kern.num_filesの限界に達したかどうかを確認しますkern.maxfilesます。

    その場合は、次のコマンドを実行して制限を増やします。

    sysctl -w kern.maxfiles=20480
    which launchctl && launchctl limit maxfiles 65536 unlimited
    which ulimit && ulimit -c unlimited
    
  • クラッシュの原因となるChromeファイルを変更するマルウェア/ウイルスがある可能性があります。

  • ハードウェアメモリ関連の問題が発生する可能性があります。そのため、いくつかのテスト(などmemtest)を実行します。

マックOS

Chromeからログを表示するには、次を実行します:

log stream --level debug --predicate 'processImagePath contains "Google"'

または、クラッシュダンプをチェック(またはチェックイン)できるコンソールアプリを実行します~/Library/Logs/DiagnosticReports。参照:Chromeで「Aw、Snap!」エラーをデバッグする


デバッグ

上記のいずれも役に立たない場合は、ソースからChromeをコンパイルすることを検討(長時間かかります)、ターミナルから直接実行できます。その後、「Aw、Snap!」エラーの後に、発生したソースコードファイル内の関数と行を含む完全なスタックトレースが続きます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.