読者です 読者をやめる 読者になる 読者になる
無料で使えるシステムトレードフレームワーク「Jiji」 をリリースしました!

・OANDA Trade APIを利用した、オープンソースのシステムトレードフレームワークです。
・自分だけの取引アルゴリズムで、誰でも、いますぐ、かんたんに、自動取引を開始できます。

FireBugのコンソールに行番号付きでスタックトレースを表示する手順

FireBugのコンソールに行番号付きでswfで発生した例外のスタックトレースを表示する手順です。ポイントは以下。

  1. デバック版Flash Playerでswfを実行。
  2. コンパイルオプションでデバッグをオンにしてコンパイル
  3. log.asでスタックトレースを出力。

1.デバック版Flash Playerのインストール

Adobe Flex 3 ヘルプ - デバッガ版の Flash Player の使用を参考に、デバッグFlash Playerをインストールします。
ローカル環境(Windows XP / FireFox 3.0.1)だと、

  1. FireFoxを終了
  2. 「アプリケーションの追加と削除」からFlash Playerをいったんアンインストール。
  3. \runtimes\player\win\Install Flash Player 9 Plugin.exe」を実行してPlayerをインストール
  4. FireFoxを起動。

で問題なく差し換わりました。

2.デバッグをオンにしてコンパイル

コンパイルオプションでデバッグをオンにしてコンパイルします。

$ mxmlc -debug=true <コンパイル対象>

Antタスクの場合は、mxmlc要素の属性で指定すればOK

<mxmlc file="<コンパイル対象>" 
       debug="true"
       output="<出力先>">
</mxmlc>

オプションの詳細は、Adobe Flex 3 ヘルプ - アプリケーションコンパイラのオプションについてを参照。

3.log.asでトレースを出力

ActionScriptのソース中で例外をキャッチしてスタックトレースを取得し、log.asを使ってFireBugに転送します。log.asの使い方は、log.asを使ってみるを参照。

var str:String = null;
try {
  str.toString(); // nullなのでエラーになる。
} catch (error:Error) {
  // 例外のメッセージとスタックトレースをlog.asで出力
  log(error.message + "\n" + error.getStackTrace());
}

これで、例外が発生した場合、そのスタックトレースFireBugのコンソールに出力されるはず。環境が構築できていれば、このswfで確認できます。