トップ回答者
Internet Explorer 8 (Windows7) で特定のページを参照するとアプリケーションエラー

質問
-
お世話になっております。
表題の件でアドバイスを頂きたく投稿させていただきます。Windows7上の Internet Explorer 8 で特定のページを参照するとアプリケーションエラーとなります。
アドオンの問題かと思い、FlashPlayer等いくつかのアドオンを無効にしてみましたが、現象が改善されませんでした。後日、該当PC(遠隔地にあります)のイベントログを参照したところ以下のようなイベントが乗っていました。
ログの名前: Application
ソース: Application Error
日付: 2011/08/26 16:03:29
イベント ID: 1000
タスクのカテゴリ: (100)
レベル: エラー
キーワード: クラシック
ユーザー: N/A
コンピューター: *****
説明:
障害が発生しているアプリケーション名: iexplore.exe、バージョン: 8.0.7600.16385、タイム スタンプ: 0x4a5bc69e
障害が発生しているモジュール名: unknown、バージョン: 0.0.0.0、タイム スタンプ: 0x00000000
例外コード: 0xc0000005
障害オフセット: 0x63657275
障害が発生しているプロセス ID: 0xe04
障害が発生しているアプリケーションの開始時刻: 0x01cc63be40bffc33
障害が発生しているアプリケーション パス: C:\Program Files\Internet Explorer\iexplore.exe
障害が発生しているモジュール パス: unknown
レポート ID: *****
イベント XML:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Application Error" />
<EventID Qualifiers="0">1000</EventID>
<Level>2</Level>
<Task>100</Task>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2011-08-26T07:03:29.000000000Z" />
<EventRecordID>12147</EventRecordID>
<Channel>Application</Channel>
<Computer>****</Computer>
<Security />
</System>
<EventData>
<Data>iexplore.exe</Data>
<Data>8.0.7600.16385</Data>
<Data>4a5bc69e</Data>
<Data>unknown</Data>
<Data>0.0.0.0</Data>
<Data>00000000</Data>
<Data>c0000005</Data>
<Data>63657275</Data>
<Data>e04</Data>
<Data>01cc63be40bffc33</Data>
<Data>C:\Program Files\Internet Explorer\iexplore.exe</Data>
<Data>unknown</Data>
<Data>7fb7b453-cfb1-11e0-b6e1-0023184f8b80</Data>
</EventData>
</Event>
が、これ以外のデータが見当たりませんでした。
エラーが発生したモジュールを特定するためにプロセスのダンプを取得したりする事は可能なのでしょうか。
いくつか調べてみたところWERにより %LOCALAPPDATA%\CrashDumps にダンプが作成されるとの表記がありましたが、そのフォルダ自体が存在していませんでした。
調査のために何か出来ることがないか、情報を頂けないでしょうか。
よろしくお願いします。
回答
-
調査のために何か出来ることがないか、情報を頂けないでしょうか。
そのログだけでは、原因が分かりませんでした(´・ω・`)
「0xc0000005」なんですね。他の環境でも再現するかが気になりますが、参考程度に思いついたことを書いておきます。
案1:IE が不規則にクラッシュする問題はご覧になられていると思います。
大きく、「プロセスを探す方法」「スレッドを探す方法」「関数を探す方法」「モジュールを探す方法」が書かれていると受け取っています。
今回は、特定のアクションに紐づいてエラーが発生しているようですのでダンプファイルがなくても、「エラー発生前にアタッチしておけばよい」と思います。
該当PCにデバッガ(VSやWinDbg)がインストール出来るならですが。
・事前に全てのIEを閉じてから1個だけ起動すればIEのどのプロセスかを探さなくても、ページ管理主担当のタブプロセス側で問題が発生しているはずで、タブプロセスは1つしかいないため事前にデバッガでAttachしておけばよさそう
・Attachしたときにブラウザが止まるなら、「Go」ボタン
・エラー発生時に、ブラウザが止まり、デバッガがどこで問題発生箇所を教えてくれるので「関数」も「スレッド」も分かりそう。
だと考えています。(本当の原因はさらに遠いかもしれませんが)案2:別ブラウザで該当サイトをローカル環境に落としてみて、ローカル環境でじっくり確認みる。
この方法なら、HTMLをばっさり削ったりして、2分岐探索的に問題が発生する条件を特定出来やすいと思います。案3:Fiddler2で不要なリクエストを削っていっても再現するかを確認してみるとか。
例えば画像のみを404にするには、AutoResponderの「Unmatched requests passthrou」をONにして、Rule Editor欄を「gif」「404_plain.dat」にすればできます。案4:あきらめて、全プラグインをOFFにするなり、IE再インストールなり、回避出来そうなアクションを行ってみる。
- 回答としてマーク 服部清次 2011年9月2日 1:52
-
少し補足です。もし、64bitOS上で32bitIEを動かしているなら、それをデバッガに教えてあげると幸せになれるみたいです。(参考:.effmach コマンドによるコンテキストのスイッチ)
0:000> .load wow64exts 0:000> .effmach x86
(!wow64exts.swや!wow64exts.kコマンドでもよいそうです)コールスタックを見たときに関数名の後ろの+以降の数字がやたらと大きい場合(4,5桁あるとか)は、デバッガ側でスタックの読み取りがうまくいけてないので、シンボル設定を見直してみると良いかもです。これらの設定が出来ていれば、「!analyze -v」の結果が正しくなるようです(参考:Crash Dump Analysis Patterns (Part 26))IEがクラッシュした際に、「!analyze -v」コマンドを以前使ったことがあるのでが、そのときもJavaScriptに起因するエラーだったのですが、
どのような種類のエラーか(たしかスクリプトとエンジンのどちらが悪いのか)まで推定してくれました。※私のおすすめは案2の方です。。(ローカルでも再現する場合)- 回答としてマーク 服部清次 2011年9月2日 1:52
すべての返信
-
調査のために何か出来ることがないか、情報を頂けないでしょうか。
そのログだけでは、原因が分かりませんでした(´・ω・`)
「0xc0000005」なんですね。他の環境でも再現するかが気になりますが、参考程度に思いついたことを書いておきます。
案1:IE が不規則にクラッシュする問題はご覧になられていると思います。
大きく、「プロセスを探す方法」「スレッドを探す方法」「関数を探す方法」「モジュールを探す方法」が書かれていると受け取っています。
今回は、特定のアクションに紐づいてエラーが発生しているようですのでダンプファイルがなくても、「エラー発生前にアタッチしておけばよい」と思います。
該当PCにデバッガ(VSやWinDbg)がインストール出来るならですが。
・事前に全てのIEを閉じてから1個だけ起動すればIEのどのプロセスかを探さなくても、ページ管理主担当のタブプロセス側で問題が発生しているはずで、タブプロセスは1つしかいないため事前にデバッガでAttachしておけばよさそう
・Attachしたときにブラウザが止まるなら、「Go」ボタン
・エラー発生時に、ブラウザが止まり、デバッガがどこで問題発生箇所を教えてくれるので「関数」も「スレッド」も分かりそう。
だと考えています。(本当の原因はさらに遠いかもしれませんが)案2:別ブラウザで該当サイトをローカル環境に落としてみて、ローカル環境でじっくり確認みる。
この方法なら、HTMLをばっさり削ったりして、2分岐探索的に問題が発生する条件を特定出来やすいと思います。案3:Fiddler2で不要なリクエストを削っていっても再現するかを確認してみるとか。
例えば画像のみを404にするには、AutoResponderの「Unmatched requests passthrou」をONにして、Rule Editor欄を「gif」「404_plain.dat」にすればできます。案4:あきらめて、全プラグインをOFFにするなり、IE再インストールなり、回避出来そうなアクションを行ってみる。
- 回答としてマーク 服部清次 2011年9月2日 1:52
-
少し補足です。もし、64bitOS上で32bitIEを動かしているなら、それをデバッガに教えてあげると幸せになれるみたいです。(参考:.effmach コマンドによるコンテキストのスイッチ)
0:000> .load wow64exts 0:000> .effmach x86
(!wow64exts.swや!wow64exts.kコマンドでもよいそうです)コールスタックを見たときに関数名の後ろの+以降の数字がやたらと大きい場合(4,5桁あるとか)は、デバッガ側でスタックの読み取りがうまくいけてないので、シンボル設定を見直してみると良いかもです。これらの設定が出来ていれば、「!analyze -v」の結果が正しくなるようです(参考:Crash Dump Analysis Patterns (Part 26))IEがクラッシュした際に、「!analyze -v」コマンドを以前使ったことがあるのでが、そのときもJavaScriptに起因するエラーだったのですが、
どのような種類のエラーか(たしかスクリプトとエンジンのどちらが悪いのか)まで推定してくれました。※私のおすすめは案2の方です。。(ローカルでも再現する場合)- 回答としてマーク 服部清次 2011年9月2日 1:52
-
Yoshio さん、
こんにちは。
フォーラム オペレーターの服部 清次です。Yoshio さんがこちらの質問を投稿されてから少し経ちましたが、その後の状況はいかがでしょうか?
今回、参考情報として、(´・ω・`) さんの回答を役立てていただけるのではないかと思いましたので、
勝手ながら、私の方でいったん [回答としてマーク] させていただきました。また何か疑問や困ったことなどがありましたら、ぜひ MSDN/TechNet フォーラムでご質問ください。
今後とも、よろしくお願いします!
それでは、また。
__________________________________________________
日本マイクロソフト株式会社 フォーラム オペレーター 服部 清次