すがブロ

sugamasaoのhatenablogだよ

Mac に Debug版 Flash の trace ログを(ファイルに)吐かせるようにする

trace ログをファイルに吐かせたいのです

なぜか。
なぜなら、AS3 + vim で開発をするにあたり、rascut が必要不可欠。そして、 rascut を起動させているコンソールに trace で吐いた文字列を出力する為には「trace でログに出力」→「ログから rascut コンソールに出力」というルートを作ってあげる必要があるからだ。
ちなみに、rascut についてはActionScript やるなら入れとけ。rascut 導入と使い方。 - てっく煮ブログを参照のこと。

まずはデバッグ版 Flash をインストールする

Adobe Flash Player - Downloadsここから、おれの場合 Intel 版 Mac なので

Download the Macintosh Flash Player 10 Plugin content debugger (Intel-based Macs) (ZIP, 6.03 MB)

をクリックして DL した。
ちなみに、Intel版かどうかは Mac のリンゴメニューから「この Mac について」を選択して、プロセッサの欄を見ると良いよ。Intel の人は Intel って書いてあるから。
DL後はそのまま、言われるがままにインストールを行う。

Debug 出力用設定を記載する

たぶん、この設定をしてあげないとログファイルには吐けないと思うので。
下記のファイルを作成する(おそらく、ディレクトリ構成はあっても mm.cfg は無いはず)。
/Library/Application Support/Macromedia/mm.cfg
そして、以下の内容を記載する

ErrorReportingEnable=1
TraceOutputFileEnable=1

また、以下のディレクトリを、なければ作成しておく

Users/xxxxxxx/Library/Preferences/Macromedia/Flash\ Player/Logs/

当たり前だけど、 xxxxxxx の部分は自分のユーザ名にすること。

適当な trace 文を記載して、ログが出る事を確認する

面倒なので(すぐソースを書けないので)ソースは省略。とりあえず、一発 trace 分が出力されるプログラムを動かしたとしよう。
そうしたら、以下のファイルを確認し、ログが出ている事を見る。

Users/xxxxxxx/Library/Preferences/Macromedia/Flash\ Player/Logs/flashlog.txt

ここまで出来たら

rascut に引数を渡してあげればコンソールにも trace 分が出力されるようになります。
例えば、以下のような引数にすると良いのではないでしょうか。

ascut test.as -s --log=Users/xxxxxxx/Library/Preferences/Macromedia/Flash\ Player/Logs/flashlog.txt

おれは毎回 rascut ファイル名を打つのだけでも苦行に感じるので、適当なシェルを書いている。
こんな感じ

#!/bin/sh

LOG=/Users/xxxxxxx/Library/Preferences/Macromedia/Flash\ Player/Logs/flashlog.txt

rascut test.as -s --log=${LOG}


追記(2009/06/08)
すみません。上記の例だとうまくログを出力できていませんでした。
おそらく、LOG変数にいれた場合のスペースの取り扱いがうまく行ってなかったみたい。
なので、面倒なので以下のように修正した

#!/bin/sh

rascut MimeDecoder.as -s --log=/Users/sugamasao/Library/Preferences/Macromedia/Flash\ Player/Logs/flashlog.txt

これでいい感じに trace を確認できるようになった。やったね!