よくある質問(FAQ)

シミュレーションの実行経過をトレースする方法を教えてください。

シミュレータについて

質問

シミュレーション実行中にエラーが発生しました。原因調査のため シミュレーション実行経過をトレースする方法はありませんか?

回答

シミュレーション実行開始からシミュレーション停止 (又はエラー発生) までの実行経過をトレースすることができます。
このトレース情報はシミュレーション実行ログ (Systemg.log 又はSX.log) ヘ出力されます。

下の画面キャプチャは「トレース情報を採取していない」ときのシミュレーション実行ログ (Systemg.log) の表示です。
トレース情報は出力されていません。

■トレースの設定方法

スタートアップコマンドファイル(SS_STARTUP.txt)へ下記のコマンドを追加することで、トレース情報が採取されます。

※シミュレータエンジンが「System-G」の場合
set trace/subroutine=yes/instruction
※シミュレータエンジンが「SX」の場合
set trace/instruction
★注意事項
「トレース情報」を採取しながらのシミュレーション実行は 著しく時間を要します。
「トレース情報」の採取が不要なときは、上記コマンド (set trace...)は削除していただくことをお勧めします。



■ System-G で「トレース情報を採取したとき」のシミュレーション実行ログ

シミュレーション実行ログ (Systemg.log) へ 下記形式のトレース情報が追加されています。

;%SYSTEMG-I-PROCESS, process "WinAMS" is started
;%SYSTEMG-I-GO, run program by process "WinAMS"
;%SYSTEMG-I-XIPC, function "ソースファイル名¥関数名" called by process "WinAMS"
;traced to ソースファイル名¥関数名¥#行番号+offset <--トレース情報
  |
;returned from 関数名

■ SX で「トレース情報を採取したとき」のシミュレーション実行ログ

シミュレーション実行ログ (SX.log) へ 下記形式のトレース情報が追加されています。

;%XTP-I, Start Sub Process (WinAMS.dll)
;%SX-I-XIPC, function "ソースファイル名¥関数名" is called by process "WinAMS
;traced to ソースファイル名¥関数名¥#行番号+offset <--トレース情報
  |
;returned from 関数名