fdb あるいは Flash Player debug
- Date
- 2007-07-21 (Sat)
- Category
- AIR / ActionScript
最近 ActionScript をすこし真面目にやるようになりました。もうほとんど Java で、まぁ覚えやすいような、みんなそこまで Java 好きなのか… Design Pattern をやったので、それも近いうちにまとめたいです。
さて、今回は小ネタで。Flash では伝統的に trace という標準出力関数があり、皆よく print debug などに使いまくってるはずですが、最新の Flash Player.app でどうやるかを解説します。
僕の記憶では、昔のバージョンの Debug 版 Flash Player.app (昔は Projector とか呼ばれてたような…)では、フローティングパネルが開いて、そこに出ていたりしたような気がします(嘘かも)。もちろん、Flash CS3 の IDE 内ではそのように動作するし、coding から、build、debug まで一貫した環境で出来て便利そうではあります。
僕のやり方は、Flex SDK を使った OLD SKOOL!! 開発なので(emacs まではまだたどり着いてない)、無料で手に入るものでやりましょう。ActionScript 3 なので最新バージョンの Flash Player が必要です。以下のページよりダウンロード。
Adobe Flash Player - Downloads
種類がありすぎて confusing ですが、Projector content debugger と書いてあるものを platform 毎に選んでください。ちなみに Flex3 SDK に同梱の Flash Player.app は debug ビルドではありません。(っつぅか何処見ても Debug と Release ビルドの違いがわからないのはどうかと思う。)
さてようやく本題です。
そのまま debug ビルドな Flash Player.app を立ち上げて、trace 文を含む swf ファイルを開こうとすると、debug host は何処だとか聞いてきます。どうやら debug 用に別の server daemon が必要なんですね? Projects Open Source Flash をみるといくつか興味深いプロジェクトがいくつかあります。試しましたけど、なんというか、ソースコードに手を加えなきゃ行けなかったり、それは納得いきません。
で、どうするか。実は Flex3 SDK には fdb という超本格的な debugger が付属しています。これと Flash Player を連携させると、trace を拾えます。というか連携させないと拾えません。しかも致命的に使いにくい点もいくつかあります。以下使い方を。
- fdb の中から、Flash Player を起動させる必要があります。
- fdb が Flash Player.app を起動するためにのファイルパスを渡してやる必要がありますが、fdb は空白を含むパスを理解しません。
- ので、まず最初に Debug built Flash Player.app を適当な名前に rename して、空白文字列を含まないパスに copy します。僕は /usr/local/flash/debug.app とかしました。
- fdb とタイプすると、interactive shell のようなものが立ち上がります。次に run /usr/local/flash/debug.app などとすると、Flash Player が立ち上がるので、その dock アイコンに swf ファイルをドロップするもよし、メニューからファイルを開くもよし。
- 通常の terminal shell から、fdb run /usr/local/flash/debug.app などとすると、Debug built Flash Player が立ち上がる所まで行くので、僕はそれを Shell の Alias に登録しました。
- そしてその開いた Flash Player で swf ファイルを開くと、fdb が最初に実行を休止します。fdb シェルにて continue あるいは c とタイプすると、実行が再開されます。
- fdb シェル上にて help または h とタイプすると、コマンド一覧が表示されます。
- 一度 swf ファイルを Flash Player から閉じると、fdb と Debug built Flash Player のコネクションは途絶えます。というわけで最初からやり直し!なのです。
- また開いたままでしばらくほっとくと、やはりコネクションタイムアウト、とかいって勝手に切られます。
こんな所でしょうか。
最近 TextMate に TextEditor を鞍替えしようかと思っています。Skeleton (App-config.xmlとかの)作成ができて、one key stroke でbuild → debug player の起動まで云ったりしたら便利そう?あぁ、それにしても1行で終わらせるつもりのエントリに1時間もかけてしまった。。
Comment:0
Trackback:0
- TrackBack URL for this entry
- http://blogs.grf-design.com/mt/mt-tb.cgi/225
- Listed below are links to weblogs that reference
- fdb あるいは Flash Player debug from The Croton