デバッグモード

デバッグモードは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文などと同じ機能を持ちますが、出力先がデバッグウインドウです。
ASSERT命令は引数が0の時、エラーを出します。引数が非0の時は何もしません。
DEBUGCLEAR命令はデバッグウインドウの文字を全て消去します。引数はありません。
これらの命令は非デバッグモード時には何もしません。
引数の解析も行わないのでDEBUGPRINTFORM の書式がおかしいなどの問題があっても非デバッグモード時には何も起きません。
これらは何もしない命令と扱われるだけでコメント行と扱われるわけではないのでSIF文の直後に使っても安全です。

また、変数__FILE__, __LINE__, __FUNCTION__はデバッグ時のみ意味のある値を返します。
非デバッグモード時には0又は空文字列を返します。

デバッグウインドウ

デバッグモード時にはデバッグウインドウを開くことが出来ます
メニューのデバッグから開くか、コンソールで@DEBUGと入力して下さい。
また、メインコンソールでショートカットキーCtrl+Dでもデバッグウインドウを開くことが出来ます。
コンフィグオプションによっては起動時にデバッグウインドウが自動で開きます。

デバッグウインドウはサイズ可変です。用途に合わせてサイズを変えてください。
デバッグウインドウの初期サイズ、初期位置は設定ダイアログの「デバッグ」の項目から変更できます。
デバッグウインドウを開いた状態で設定ダイアログを開くと現在のサイズ、位置を取得できます

デバッグウインドウに表示される情報はデバッグウインドウ内のタブによって切り替えることができます。
情報はデバッグウインドウがフォーカスを得た時やタブを切り替えた時などに更新されます。
また、メインコンソールからショートカットキーCtrl+Rで情報を更新できるほか、
DEBUGCLEAR命令によって文字を全て消去することもできます。

変数ウォッチ

「対象」と書かれたカラムの下辺りをクリックしてください。編集モードになるはずです。
ここに「TALENT:MASTER:2」、「NAME:TARGET」など値を知りたい変数名を入力すると「値」の項に値が表示されます。
値取得中にエラーが発生した場合にはエラーの内容が表示されます。
対象を削除したい場合、対象を編集し空文字列にしてください。
変数ウォッチが更新されるタイミングでその行が削除されます。
変数ウォッチに追加した対象はデバッグウインドウを閉じた時に保存され、開く時に読み込まれます。
それ以外のタイミングで保存・読込をしたい場合にはメニューのファイルから保存・読込をしてください。

「対象」として変数だけでなく定数や式も利用できますが、式中関数を呼び出す場合には注意してください。
変数ウォッチは値を更新するたびにその式中関数を実際に呼び出しています。
呼び出された式中関数に他の変数を変えるなどの副作用がある場合、変数ウォッチが更新されるたびに副作用が起きます。

スタックトレース

呼び出し中の関数の情報です。
一番上が現在の関数で、以下に現在の関数を呼び出した関数、その関数を呼び出した関数と続きます。

コンソール

デバッグ用のコンソールです。
DEBUGPRINTやDEBUGPRINTFORMなどの出力先です。
また、メインコンソールに出力される情報のうち、エラーや警告などはデバッグコンソールにも出力されます。
コンソールの一番下のテキストボックスからはデバッグコマンドを入力できます。
メインコンソールでのデバッグコマンドと異なり、先頭に@をつける必要はありません。
この機能は「デバッグコマンドを使用する」オプションがNOの場合でも有効です。
また、MASTERの名前がイカサマになることはありません。