ホーム > ユーザーサポート > FAQ カバレッジマスターwinAMS

FAQ / カバレッジマスターwinAMS

ツール起動・スタートアップに関する問題

011_01 : 初期設定終了アドレスのオフセットは何を意味するのでしょうか?

【質問】
初期設定終了アドレスにmain+0x0を設定した場合、main関数の先頭アドレスにプログラムカウンタが到達した時点で、テスト対象関数の先頭アドレスにジャンプすると認識していますが、テスト対象関数実行後、制御の戻り先は決まっているのでしょうか?また、このオフセット値0x0は何を意味するのでしょうか?

【回答】
テスト対象関数実行後には、「テスト設定」ビューの「初期設定終了アドレス」に指定したアドレスに制御が戻ります。通常は、main+0x0を設定しmain関数の先頭アドレスに制御を戻すように設定します。通常は、main関数の先頭、すなわちmain+0x0の指定で問題有りません。

ただし、カバレッジマスターwinAMSは、スタックポインタと実行アドレスが元に戻ったことを検出して、被試験関数の実行が終了したと認識しているため、コンパイラ展開によって、main関数の先頭アドレスにスタックポインタを変更する命令がある場合には、被試験関数実行実行後に、main関数の先頭の命令を実行してしまい、スタックポインタが元に戻らず、テスト実行が終了しないことがあります。この場合には、main関数の先頭アドレス+数バイトを初期化終了アドレスに指定し、スタックポインタを制御する命令を避けて制御を戻すように指定する必要があります。

このオフセット値が必要かどうかは、コンパイラのコード生成に依存しています。ご不明の場合は、main関数の先頭部分のコード展開の情報を添えて、弊社ユーザーサポートまでお問い合わせください。

(参考FAQ:) 011_02 : 「テスト設定」ビューにある「初期設定終了アドレス」とは何ですか?

 

関連サポート情報検索

【サポート情報サイト内Google検索】

検索キーワード: シミュレータ実行エラー

他のキーワード検索



参考情報・リンク