次のセクションでは、FlexScriptのデバッグ方法について説明します。
FlexSimコードエディタ内では、行番号の左側に余白があります。余白をクリックすると、そのコード行にブレイクポイントを追加できます。ブレイクポイントは、余白に として表示されます。ブレイクポイントを削除するには、
をクリックします。ブレイクポイントがあるコード行が実行されると、FlexSimはデバッグモードになります。デバッグ中は、デバッガーツール、ツリーウィンドウ、出力コンソール、限られた数のその他のウィンドウなど、プログラムの特定の領域のみ操作できます。コードウィンドウが変更され、デバッグ用のツールが表示されます。
debug()
コマンドは任意のflexscriptコードに配置できます。これはブレイクポイントのように機能します。モデルが実行されると、モデルを一時停止してデバッグウィンドウを開きます。ただし、ブレイクポイントデバッグが無効になっている場合でもモデルを一時停止します。
このコマンドを使用すると、条件付きブレイクポイントを設定できます。
次のコントロールがあります。
[ブレイクポイント]ウィンドウは、[デバッグ]メニューから利用できます。これは、モデル内のコードに追加されているブレイクポイントを示すチェックボックス付きのツリービューです。ブレイクポイントを無効にするには、該当する行番号の横にあるチェックボックスをクリックします。すべてのブレイクポイントを無効にするには、[ブレイクポイントデバッグを有効化]チェックボックスをオフにします。これらのチェックボックスのオン/オフは、ブレイクポイントが有効か無効かのみに影響します。ブレイクポイントが実際に削除されるわけではありません。ブレイクポイントを削除するには、このウィンドウで目的のブレイクポイントを強調表示し、Deleteキーを押すか、コードウィンドウ内の をクリックします。無効化されたブレイクポイントは、余白に
として表示されます。この場合、FlexScriptの実行がデバッグのために停止することはありません。
ブレイクポイントウィンドウでブレイクポイントを右クリックすると、関連するコードを調べることができます。
この領域には、ローカルに定義された変数の現在の値が表示されます。コードをステップ実行すると、これらの値がすぐに更新されるため、起こっていることを把握できます。コード内の変数の内容が期待どおりでないためにモデルが正常に動作しないことがよくあります。このウィンドウでは、変数の内容を正確に把握できます。
また、[コード編集]ウィンドウで変数にマウスカーソルを合わせると、その変数の現在の値が表示されます。
この領域では、表示するその他の変数や式を指定できます(グローバル変数など)。[+]ボタンを押すと、テーブルの行数を増やすことができます。[-]ボタンを押すと、テーブル内の最後にクリックした行が削除されます。テーブルのグレーの領域をダブルクリックすると、変数または式を入力できます。その値は右側に表示されます。これは、「if」文で使用されるような特定の条件付きステートメントが期待どおりに動作しない理由を説明するのに役立ちます。また、[ローカル変数]タブに表示されないグローバル変数を表示することもできます。
この領域には、現在のコールスタック(関数呼び出し履歴)が表示されます。直近の呼び出しは常にリストの一番上に表示されます。この場合、OnEntry関数は、OnTimerEvent関数から呼び出されたOnRecieve関数によって呼び出されました。
コールスタックの任意の行を右クリックすると、ツリー内の関連するコードまたはノードを探索できます。
[コードプロファイル]ウィンドウは、モデルで実行されているすべてのFlexScriptコードをプロファイリングします。
次のプロパティがあります。
コードプロファイリングを有効にする場合は、このチェックボックスをオンにします。[コードプロファイル]ウィンドウを閉じても、コードプロファイリングは有効のままとなります。
現在累積されているプロファイルデータをクリアします。
これは、モデルが開始されてからコードが実行されるのにかかった合計時間(ミリ秒)です。
これは、コード内のユーザーコマンドなど、他の関数の呼び出しにかかった時間とセルフタイムの合計時間です。
これは、コードが実行された合計回数です。
実行中のFlexScriptノードへのパスです。
イベントリストツールとイベントログツールもデバッグに役立ちます。これらのツールの詳細については、「イベントリスト」と「イベントログ」を参照してください。