【手続補正書】
【提出日】平成17年10月19日(2005.10.19)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
リターンポイントに関連する埋込みライブラリ値を有するダミー命令を利用して、期待リターンポイントと代替リターンポイントとを含む複数のリターンポイントのうちの一つを識別するコンピュータ実現方法であって、
ルーチン内から前記ルーチンの実行中に関数をコールするステップであって、前記関数が前記ルーチンから独立するようになっているステップ、
前記関数の実行を開始するステップ、
前記ダミー命令に関連するリターンポイントにおいて前記コールされた関数から前記ルーチンに戻るステップ、
前記リターンポイントが期待リターンポイントであるように、前記コールされた関数の前記実行が正常に戻る場合、オーバーヘッドを本質的に使用せずに前記ダミー命令を実行するステップ、
前記リターンポイントが代替リターンポイントであるように、前記コールされた関数の前記実行が代替リターンを要求している場合、前記埋込みライブラリ値を読み取るステップ、
前記読み取るステップにのみ基づいて前記代替リターンポイントを決定するステップ、及び
前記リターンポイントにおいて前記ルーチン内の命令を実行するステップ、
を有するコンピュータ実現方法。
【請求項２】
前記関数が期待通りに前記ルーチンに戻り、更に、前記関数の前記実行が完了した後に実行される前記ルーチン内の第１命令を識別するように構成された前記期待リターンポイントに戻る前に、前記関数の前記実行を完了するステップ、を含むようになっている、請求項１に記載のコンピュータ実現方法。
【請求項３】
更に、前記ルーチンの実行を継続するステップを含む、請求項２に記載のコンピュータ実現方法。
【請求項４】
前記関数の前記実行を開始するステップが第１代替リターンポイントをロードするステップを含み、前記第１代替リターンポイントが前記期待リターンポイントから一定のオフセットに配置された命令によって識別されるようになっている、請求項１に記載のコンピュータ実現方法。
【請求項５】
更に、
前記コールされた関数の前記実行を中止するステップ、及び
前記期待リターンポイントから前記一定のオフセットに配置された前記命令によって識別される前記第１代替リターンポイントにジャンプするステップ、を含む、請求項４に記載のコンピュータ実現方法。
【請求項６】
前記期待リターンポイントから前記一定のオフセットに配置された前記命令は、あまり大きくない量の計算オーバヘッドを使用すると共に、前記埋込みライブラリ値を含む命令である、請求項４に記載のコンピュータ実現方法。
【請求項７】
前記期待リターンポイントから前記一定のオフセットに配置された前記命令は、前記第１命令である、請求項４に記載のコンピュータ実現方法。
【請求項８】
前記関数が正常に戻る場合に前記ルーチン内の第１命令が実行され、更に、
前記関数が正常に戻らない場合に前記期待リターンポイントから一定のオフセットに配置された命令によって識別される第１代替リターンポイントをロードするステップを含み、
前記第１代替リターンポイントをロードするステップは、前記埋込みライブラリ値から前記第１代替リターンポイントを取り出すステップを含むようになっている、請求項１に記載のコンピュータ実現方法。
【請求項９】
複数のリターンポイントの一つに関連するデータを格納して前記複数のリターンポイントの一つに関連する前記データの効率的な取得を可能にするための前記コンピュータ実現方法であって、前記複数のリターンポイントは、期待リターンポイントと少なくとも第１代替リターンポイントとを含み、前記コンピュータ実現方法が、
ルーチンを実行するステップであって、前記ルーチンはそのルーチンの一部ではない関数をコールするように構成されているステップ、
前記ルーチン内から、前記ルーチンの実行中に、前記関数をコールするステップ、
前記関数の実行を開始するステップ、
前記関数から前記ルーチンに戻るステップであって、前記関数は、前記ルーチン内の第１命令にアクセスするようになっており、前記ルーチン内の前記第１命令は、前記期待リターンポイントに実質上配置されると共に、前記複数のリターンポイントの一つに関連するデータを含むようになっているステップ、
前記関数が期待通りに戻る場合に前記ルーチン内の前記第１命令を実行するステップであって、前記第１命令の実行は、あまり大きくない計算オーバヘッドを使用すると共に、前記ルーチンの実行に影響を与えないようになっているステップ、
前記関数が期待通りに戻らずに第１非期待リターンとして戻る場合に前記第１代替リターンポイントを計算するために、前記第１命令に関連する前記埋込みライブラリ値にアクセスするステップ、及び
前記関数が期待通りに戻らずに第１非期待リターンとして戻る場合に前記第１代替リターンポイントにおいて前記ルーチン内の第２命令を実行するステップであって、前記関数が期待通りに戻らずに第１非期待リターンとして戻る場合に前記第１命令は実行されないようになっているステップ、
を含む、コンピュータ実現方法。
【請求項１０】
前記第１命令はテスト命令及び移動命令のうちの何れかである、請求項９に記載のコンピュータ実現方法。
【請求項１１】
更に、前記第１代替リターンポイントにジャンプするステップを含む、請求項９に記載のコンピュータ実現方法。
【請求項１２】
前記第１命令に関連する前記埋込みライブラリ値にアクセスするステップは、前記期待リターンポイントから前記第１代替リターンポイントを識別する前記ライブラリ値をロードするステップを含む、請求項９に記載のコンピュータ実現方法。
【請求項１３】
更に、
前記関数が期待通りに戻らずに第２非期待リターンとして戻る場合に第２代替リターンポイントを識別するための第３命令にアクセスするステップであって、前記第３命令は、前記期待リターンポイントからオフセット分、離して配置されていると共に、あまり大きくない計算オーバーヘッドを利用して実行するように構成されているステップ、及び
前記関数が期待通りに戻らずに第２非期待リターンとして戻る場合に前記第２代替リターンポイントにおいて前記ルーチン内の第４命令を実行するステップであって、前記関数が期待通りに戻らずに第２非期待リターンとして戻る場合に前記第１命令及び前記第３命令は実行されないようになっているステップ、
を含む、請求項９に記載のコンピュータ実現方法。
【請求項１４】
更に、
前記関数が期待通りに戻る場合に前記第３命令を実行するステップを含む、請求項１３に記載のコンピュータ実現方法。
【請求項１５】
複数のリターンポイントの一つに関連するデータを格納して前記複数のリターンポイントの一つに関連する前記データの効率的な取得を可能にするためのコンピュータプログラムプロダクトであって、前記複数のリターンポイントは期待リターンポイントと少なくとも第１代替リターンポイントとを含み、前記コンピュータプログラムプロダクトが、
ルーチンを実行するためのコンピュータコードであって、前記ルーチンはそのルーチンの一部ではない関数をコールするように構成されているコンピュータコード、
前記ルーチン内から、前記ルーチンの実行中に、前記関数をコールするためのコンピュータコード、
前記関数の実行を開始するためのコンピュータコード、
前記関数から前記ルーチンに戻るためのコンピュータコードであって、前記関数は前記ルーチン内の第１命令にアクセスするようになっており、前記第１命令は、前記期待リターンポイントに実質上配置されると共に、前記複数のリターンポイントの一つに関連するデータを含むようになっているコンピュータコード、
前記関数が期待通りに戻る場合に前記ルーチン内の前記第１命令を実行するためのコンピュータコードであって、前記第１命令の実行は、あまり大きくない計算オーバヘッドを使用すると共に、前記ルーチンの実行に影響を与えないようになっているコンピュータコード、
前記第１命令に関連する埋込みライブラリ値にアクセスするためのコンピュータコードであって、前記関数が期待通りに戻らずに第１非期待リターンとして戻る場合に前記第１代替リターンポイントを決定するコンピュータコード、
前記関数が期待通りに戻らずに第１非期待リターンポイントとして戻る場合に前記第１代替リターンポイントで前記ルーチン内の第２命令を実行するためのコンピュータコードであって、前記関数が期待通りに戻らずに第１非期待リターンポイントとして戻る場合に前記第１命令は実行されないようになっているコンピュータコード、及び
前記コンピュータコードを格納するコンピュータ読取り可能媒体、
を備えたコンピュータプログラムプロダクト。
【請求項１６】
前記第１命令に関連する前記埋込みライブラリ値にアクセスするための前記コンピュータコードは、前記期待リターンポイントから前記第１代替リターンポイントを識別するための前記埋込みライブラリ値を含むバイトをロードするためのコンピュータコードを有する、請求項１５に記載のコンピュータプログラムプロダクト。
【請求項１７】
更に、
前記関数が期待通りに戻らずに第２非期待リターンとして戻る場合に第２代替リターンポイントを識別するための第３命令に関連するバイトにアクセスするコンピュータコードであって、前記第３命令は、前記期待リターンポイントからオフセット分、離して配置されていると共に、あまり大きくない計算オーバヘッドを使用して実行するように構成されているコンピュータコード、及び
前記関数が期待通りに戻らずに第２非期待リターンとして戻る場合に第２代替リターンポイントにおいて前記ルーチン内の第４命令を実行するコンピュータコードであって、前記関数が期待通りに戻らずに第２非期待リターンとして戻る場合に前記第１命令及び第３命令は実行されないようになっているコンピュータコード、
を有する、請求項１５に記載のコンピュータプログラムプロダクト。
【請求項１８】
リターンポイントに関連する埋込みライブラリ値を有するダミー命令を利用して、期待リターンポイントと代替リターンポイントとを含む複数のリターンポイントのうちの一つを識別するコンピュータプログラムプロダクトであって、
ルーチン内から、前記ルーチンの実行中に、前記ルーチンの外部にある関数をコールするためのコンピュータコード、
前記関数の実行を開始するためのコンピュータコード、
前記ダミー命令に関連するリターンポイントにおいて前記コールされた関数の前記実行から前記ルーチンに戻るためのコンピュータコード、
前記リターンポイントが期待リターンポイントであるように、前記コールされた関数の前記実行が正常に戻る場合に、オーバーヘッドを本質的に使用せずに前記ダミー命令を実行するためのコンピュータコード、
前記リターンポイントが代替リターンポイントであるように、前記コールされた関数の前記実行が代替リターンを要求している場合に、前記埋込みライブラリ値を読み取るためのコンピュータコード、
前記埋込みライブラリ値にのみ基づいて前記代替リターンポイントを決定するためのコンピュータコード、
前記リターンポイントにおいて前記ルーチン内の命令を実行するためのコンピュータコード、及び
前記コンピュータコードを格納するコンピュータ読取り可能媒体、
を有するコンピュータプログラムプロダクト。