「Aw Snap!」の原因を特定する実用的な方法があるかどうか、誰もが知っていますか。Google Chromeに時々表示されるメッセージ Chromeには、参照できるエラーログがありますか?この問題は、コード内の再帰ループがすべてのメモリを飲み込んでいることが原因であると思われますか?これを確認する方法はありますか?
「Aw Snap!」の原因を特定する実用的な方法があるかどうか、誰もが知っていますか。Google Chromeに時々表示されるメッセージ Chromeには、参照できるエラーログがありますか?この問題は、コード内の再帰ループがすべてのメモリを飲み込んでいることが原因であると思われますか?これを確認する方法はありますか?
回答:
ここにある説明を参照してください。Chromeでの通常のログについては、次のことを試すことができます。
Chromeのログ機能を使用します。
ログを有効にするには、次のコマンドラインフラグを使用してChromeを起動します。
--enable-logging --v=1
出力はchrome_debug.log
、Chromeのユーザーデータディレクトリのファイルに保存されます。
ログファイルの場所は、CHROME_LOG_FILE
環境変数で上書きできます。
フラグの完全なリストについては、Google Chromeコマンドラインスイッチを確認してください。
または、javascriptコンソールを使用します。
Ctrl+ Shift+ J(Windows / Linux)またはCmd+ Option+ J(Mac)を押します。
「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
デバッグビルドを使用している場合はバイナリビルドフォルダー()のファイルからクラッシュログを取得できます。
--enable-logging --v=1
、受け入れられた回答の編集が追加するかなり前に言及したため、賛成票を投じます。
おやおや、スナップ!ページは通常、ソフトウェアのバグに関連する可能性があるプロセスセグメンテーションフォールトクラッシュに関連しています。原因を特定するには、ロギングを有効にするか(他の回答で提案されているように)、コアダンプファイルのバックトレースを分析します(macOSではLinux、たとえばUbuntu)。
原因がわからない場合(たとえば、スタックトレースがメモリアドレスのみで構成されている場合)、Chromeバグ追跡システムで新しいサポートチケットを作成できます(または既にサポートチケットがあるかどうかを再確認します)。レポート中に、chrome://crashes/
ページに移動してクラッシュIDをアップロードして含める必要があります。これにより、Chromeメンテナーがメモリアドレスをデバッグシンボルに変換できます。
または、クラッシュダンプを自分でデコードすることもできます。
参照:Google Chromeクラッシュダンプはどこにありますか?
上記を単純化するために、ページがクラッシュする主な理由は次のとおりです。
バグを発見しました(Webサイト上またはWebブラウザ自体で)。
ウェブサイトのバグ
例:JavaScript VMが割り当てられた最大メモリに達しました(メモリ不足によるクラッシュ)。
それを確認するには、DevToolsを実行しますを [ メモリ ]タブを確認します。その場合、メモリ不足の可能性があるクラッシュの直前にコードが自動的に一時停止するはずです(例:問題810015)。その場合、問題をWebサイトの所有者に報告するか、JSコードをプロファイルしてバグを見つけます。
ブラウザのバグ
システムで開いているファイルの最大数に達しました(#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
)を実行します。Chromeからログを表示するには、次を実行します:
log stream --level debug --predicate 'processImagePath contains "Google"'
または、クラッシュダンプをチェック(またはチェックイン)できるコンソールアプリを実行します~/Library/Logs/DiagnosticReports
。参照:Chromeで「Aw、Snap!」エラーをデバッグする
上記のいずれも役に立たない場合は、ソースからChromeをコンパイルすることを検討し(長時間かかります)、ターミナルから直接実行できます。その後、「Aw、Snap!」エラーの後に、発生したソースコードファイル内の関数と行を含む完全なスタックトレースが続きます。