デバッグモード¶
デバッグモードはver 1.750で追加されたモードです。
この機能はデバッグコマンドを使用する
オプションとは無関係です。
Emueraをデバッグモードで起動する¶
Emueraをデバッグモードで起動するにはコマンドライン引数に-Debug
を渡します。
コマンドライン引数を渡す簡単な方法は、
EmueraXXXX.exe
を右クリックし、ショートカットの作成
を選択、
作成されたショートカットを右クリックし、プロパティ
を選択、
プロパティでリンク先
の文字列の末尾に-Debug
を加えます。
(リンク先が"C:\~~\EmueraXXX.exe"
のように""
で囲まれている場合、"
の後に-Debug
を加えてください)
ショートカットをダブルクリックするとデバッグモードで起動するようになります。
デバッグモード時の動作¶
デバッグモードで起動するとdebug
というフォルダが自動的に作成されます。
後述する変数ウォッチのリストやデバッグコンソールのログはdebug
フォルダに保存されます。
デバッグモード時には通常実行される行に加え、;#;
で始まる行、[IF_DEBUG]~[ENDIF]
の間の行が実行されます。
デバッグモードでないときはこれらの行はコメントと同様に扱われ、実行されません。
逆にデバッグモード時には、[IF_NDEBUG]~[ENDIF]
の間の行はコメントして扱われ、実行されません。
;#;PRINTL この行はデバッグモード時のみ実行されます。
[IF_DEBUG]
PRINTL この行はデバッグモード時のみ実行されます。
[ENDIF]
[IF_NDEBUG]
PRINTL この行はデバッグモードでないときのみ実行されます。
[ENDIF]
また、デバッグモード時にのみ機能する命令があります。
DEBUGPRINT
、DEBUGPRINTFORM
、DEBUGPRINTL
、DEBUGPRINTFORML
の命令は[PRINT](../Reference/PRINT.md)
文などと同じ機能を持ちますが、出力先がデバッグウインドウです。
ASSERT
命令は引数が0の時、エラーを出します。引数が非0の時は何もしません。
DEBUGCLEAR
命令はデバッグウインドウの文字を全て消去します。引数はありません。
これらの命令は非デバッグモード時には何もしません。
引数の解析も行わないのでDEBUGPRINTFORM
の書式がおかしいなどの問題があっても非デバッグモード時には何も起きません。
これらは何もしない命令と扱われるだけでコメント行と扱われるわけではないので[SIF](../Reference/IF.md)
文の直後に使っても安全です。
また、変数__FILE__
, __LINE__
, __FUNCTION__
はデバッグ時のみ意味のある値を返します。
非デバッグモード時には0又は空文字列を返します。
デバッグウインドウ¶
デバッグモード時にはデバッグウインドウを開くことが出来ます
メニューのデバッグから開くか、コンソールで@DEBUG
と入力して下さい。
また、メインコンソールでショートカットキーCtrl+D
でもデバッグウインドウを開くことが出来ます。
コンフィグオプションによっては起動時にデバッグウインドウが自動で開きます。
デバッグウインドウはサイズ可変です。用途に合わせてサイズを変えてください。
デバッグウインドウの初期サイズ、初期位置は設定ダイアログのデバッグ
の項目から変更できます。
デバッグウインドウを開いた状態で設定ダイアログを開くと現在のサイズ、位置を取得できます
デバッグウインドウに表示される情報はデバッグウインドウ内のタブによって切り替えることができます。
情報はデバッグウインドウがフォーカスを得た時やタブを切り替えた時などに更新されます。
また、メインコンソールからショートカットキーCtrl+R
で情報を更新できるほか、
DEBUGCLEAR
命令によって文字を全て消去することもできます。
コンソール¶
デバッグ用のコンソールです。
DEBUGPRINT
やDEBUGPRINTFORM
などの出力先です。
また、メインコンソールに出力される情報のうち、エラーや警告などはデバッグコンソールにも出力されます。
コンソールの一番下のテキストボックスからはデバッグコマンドを入力できます。
メインコンソールでのデバッグコマンドと異なり、先頭に@
をつける必要はありません。
この機能はデバッグコマンドを使用する
オプションがNOの場合でも有効です。
また、MASTER
の名前がイカサマになることはありません。
変数ウォッチ¶
対象
と書かれたカラムの下辺りをクリックしてください。編集モードになるはずです。
ここにTALENT:MASTER:2
、NAME:TARGET
など値を知りたい変数名を入力すると値
の項に値が表示されます。
値取得中にエラーが発生した場合にはエラーの内容が表示されます。
対象を削除したい場合、対象を編集し空文字列にしてください。
変数ウォッチが更新されるタイミングでその行が削除されます。
変数ウォッチに追加した対象はデバッグウインドウを閉じた時に保存され、開く時に読み込まれます。
それ以外のタイミングで保存・読込をしたい場合にはメニューのファイルから保存・読込をしてください。
対象
として変数だけでなく定数や式も利用できますが、式中関数を呼び出す場合には注意してください。 変数ウォッチは値を更新するたびにその式中関数を実際に呼び出しています。 呼び出された式中関数に他の変数を変えるなどの副作用がある場合、変数ウォッチが更新されるたびに副作用が起きます。
スタックトレース¶
呼び出し中の関数の情報です。
一番上が現在の関数で、以下に現在の関数を呼び出した関数、その関数を呼び出した関数と続きます。