ブラクラをデバッガで見る

プアな通信環境でのみブラウザをクラッシュさせるページを発見。

ごみため総研では再現環境のために、実質ダウンロード速度0.3MbpsのADSL回線を引いています。パケットロスも多数発生します。

この特殊なサービスの提供を受けるために、法外な料金を支払っています。

近日中にこの特殊な環境を再現することができるコンパクトなアダプタを開発予定です。

#似たようなものはそこらじゅうで入手可能ですけど

さて本題です。

IEが落ちるのでVS2008のデバッガでアタッチしたんですが、exceptionを捕まえられない。

数回に1回キャッチできるんですが、シンボルがわからないのでさっぱりですね。

世の中には困った人が居て、

IEコンポーネントはしょっちゅう更新されるから、シンボルファイルは入手できねーよ。

だからIEをデバッガで見ても意味ねーし。

などとうそをばらまいています。

確かに、以下のシンボルファイルのダウンロードサイトにはIEなどのシンボルファイルは見当たりません。

Windows シンボル パッケージのダウンロード

ですが、以下のリンク先を見てください。

デバッグ ツールとシンボル はじめに

・・・デバッグ中にインターネットにアクセスできる場合、デバッグ セッションの前にシンボル ファイルを個々にダウンロードするのではなく、デバッグ セッション中に必要に応じてシンボルをダウンロードするようデバッガを構成できます。シンボルは指定したディレクトリの場所にダウンロードされ、デバッガはその場所からシンボルを読み込みます。・・・

つまりデバッグ中にオンデマンドで必要なシンボルファイルをインターネット上のサーバーからダウンロードしてくれます。もちろんローカルにキャッシュされますので、デバッグのたびにダウンロードするというような間抜けなことは発生しません。

20090214011210

20090214011207 

このブラクラは、ちょっと混みいったテーブルにスタイルシートを指定しすぎ気味のページで発生しました。HTMLを全部ダウンロードする前に途中まで描画した直後の再配置で落ちているようです。たぶんIEのバグです。

この生成されたHTMLはほんとうにひどいです。

たとえば、以下のような感じ。

<tr height=11>
  <td colspan=4 height=16 class="sl28">あ</td>
  <td colspan=3 class="sl58"></td>
  <td colspan=3 class="sl26"></td>
  <td colspan=8 class="sl59" style='border-right:.5px solid black'>た</td>
・・・
  </tr>

印刷用レイアウトが目的なので、気持ちは分からないでもないですが、一文字一文字にクラス設定しています。しかも別々の名前のクラスです。当然ですが、cssファイルはこのHTML専用で、数千行あります。

これはもはやブラウザ用の負荷テストですな。