【手続補正書】
【提出日】平成17年11月15日(2005.11.15)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】ランタイムでプログラム実行を変更し、コンピュータメモリにロードされたユーザ・プロセスに補助的な制御コードを組み入れる、ソフトウェアをエミュレートするためのコンピュータで実現される方法であって、
コンピュータメモリにロードされたユーザ・プロセスから少なくとも1つのコード命令のための実行を呼び出し、ユーザ・プロセスの実行を中断させるステップと、
中断したユーザ・プロセスの状態値をコンピュータメモリにロードし、該状態値をユーザ・プロセスのメモリの占有されていない領域に移動するステップと、
ユーザ・プロセスのメモリの占有されていない領域に補助的な制御コードをロードし、ユーザ・プロセスが再開される時に補助的な制御コードを実行するためにユーザ・プロセス状態値を変更するステップと、
ユーザ・プロセスのために変更された状態値を復元し、ユーザ・プロセスの中断を解除し、実行を補助的な制御コードに移すステップと、
ユーザ・プロセスの変更された状態値を使用しユーザ・プロセス命令をデータとして扱うことによって少なくとも1つのユーザ・プロセス命令を置き換え実行するエミュレーション環境を補助的な制御コードによって確立し、補助的な制御コードを組み込むことなくユーザ・プロセスが作り出したであろうレジスタ状態値を維持するステップと、
を含む方法。
【請求項２】ユーザ・プロセス実行が中断されているとき、ユーザ・プロセスのメモリの占有されていない領域にブートストラップ・ソフトウェア・コードをロードし、そして、 ユーザ・プロセスが再開されるときの使用のために、ブートストラップ・ソフトウェア・コードを実行するようユーザ・プロセス状態値を変更するステップと、
変更されたユーザ・プロセス実行が再開されるときブートストラップ・ソフトウェア・コードを実行し、その際ブートストラップ・ソフトウェア・コードは、ユーザ・プロセスに補助的な制御コードをさらにロードし、ユーザ・プロセスの実行を補助的な制御コードに移すステップと、
をさらに含む請求項１に記載の方法。
【請求項３】ユーザ・プロセス・コード命令と一緒に実行されるプロセス・モニタリング・コード命令をユーザ・プロセスにロードし、共同実行が補助的な制御コードによって呼び出されるようにするステップと、
ユーザ・プロセス・コード命令およびプロセス・モニタリング・コード命令の実行の結果を集めるステップと、
をさらに含む請求項１に記載の方法。
【請求項４】補助的な制御コードが少なくとも1つのユーザ・プロセス命令の置換と実行のためにエミュレーション環境を確立し、そして、 少なくとも1つのユーザ・プロセス命令が異なるコンピュータ・マシーン上で実行されたかのように実行される、請求項１に記載の方法。
【請求項５】ユーザ・プロセスに実行プロフィール・コードをロードし、そして、共同でユーザ・プロセスとプロフィール・コードを実行し、その結果、共同実行が補助的な制御コードによって呼び出されるステップと、
共同実行の結果を使用して補助的な制御コードの別の実行を呼び出すステップと、
をさらに含む請求項１に記載の方法。
【請求項６】初期化されていないコード・アクセスを検出するためにユーザ・プロセスのメモリ状態をテストするステップをさらに含む、請求項１に記載の方法。
【請求項７】メモリに敏感なプロシージャの呼出しに対するメモリ状態を集めるためにユーザ・プロセスのメモリ状態をテストするステップをさらに含む、請求項１に記載の方法。
【請求項８】 ランタイムでメモリ内で実行するユーザ・プロセスの命令を置き換え、メモリが状態値を維持し、コンピュータシステムが状態レジスタ値を維持する、エミュレーションのために改良されたコンピュータ実現されたソフトウェア開発ツールであって、
ユーザ・プロセスの命令をユーザ・プロセスのメモリの状態値を使用して置換する補助的な制御コードと、
ユーザ・プロセスのメモリ状態を操りユーザ・プロセス内の補助的な制御コードの実行を可能にし、ユーザ・プロセスに補助的な制御コードをロードするローダと、
呼び出されるときユーザ・プロセスのための状態レジスタ値をコンピュータメモリにロードし、ユーザ・プロセスのために状態レジスタ値を後でユーザ・プロセスのメモリに再ロードするために維持する状態値のローダであって、ユーザ・プロセス実行が呼び出されるときローダのための状態レジスタ値をコンピュータメモリにロードし、ローダのための状態レジスタ値を後にメモリに 再ロードするために維持するローダと、
ユーザ・プロセス上で制御を確立し、ユーザ・プロセスの制御を解除し、そして、 プロセス・コントローラがユーザ・プロセスの実行中断によってユーザ・プロセスに対する制御を確立するとき状態価値のローダはユーザ・プロセスのための状態レジスタ値をコンピュータメモリにロードし、プロセス・コントローラがローダを呼び出し、状態値ローダがローダの状態値を再ロードするプロセス・コントローラと、を備え、
プロセス・コントローラがユーザ・プロセスの制御を解除し、ユーザ・プロセスの実行を再開するとき、状態値のローダはユーザ・プロセスの状態レジスタ値をユーザ・プロセスのメモリに再ロードし、ローダは補助的な制御コードを実行してユーザ・プロセスに付け、そして、ローダはユーザ・プロセスの実行を補助的な制御コードに移すようになっており、
補助的制御コードは、ソフトウェア開発ツールの差込みなしでユーザ・プロセスが作り出したであろうレジスタ状態値を維持し、少なくとも1つの命令を実行し、ソフトウェア開発の差込みなしで作り出されただろうものと同じ結果を作り出すエミュレータと、ユーザ・プロセス中で実行し、ユーザ・プロセスに命令を加えるインストルメンタと、データとして扱われるユーザ・プロセスの命令を使用してエミュレータかインストルメンタを呼び出すかどうか決定する、エグゼクティブをさらに含む、
コンピュータ実現されたソフトウェア開発ツール。
【請求項９】
状態レジスタ値、ユーザ・プロセス・コード、補助的な制御コード、およびローダを備え、コンピュータシステムで使用される、コンピュータで読取り可能なメモリデバイスであって、データが、
前記ユーザ・プロセス・コードのためのコンピュータ状態レジスタに対応する第１のアレイと、
前記ユーザ・プロセス・コードの前記状態レジスタ値がユーザ・プロセスのメモリにおいて前記補助的な制御コードの実行を許可するよう変更されている、前記ユーザ・プロセス・コードの実行可能イメージと、
前記ユーザ・プロセス・コードの前記変更された状態レジスタ値に対応する第２のアレイであって、該第２のアレイのセルは前記ローダのためのメモリロケーション情報を有している、第２のアレイと、
前記補助的な制御コードのオブジェクト・モジュール・イメージと、を有し、
前記補助的な制御コードは、ユーザ・プロセス命令を置き換え、前記ユーザ・プロセス・実行可能イメージに組み入れられており、
前記ユーザプロセス実行可能イメージは、前記組み入れられた補助的な制御コードなしでユーザ・プロセスが作り出したであろうコンピュータレジスタ状態値を維持し、少なくとも1つの命令を実行し、ソフトウェア開発ツールの差込みなしで作り出されただろうものと同じ結果を作り出すエミュレータ・コードと、ユーザ・プロセス中で実行し、ユーザ・プロセスに命令を加えるインストルメンタ・コードと、前記プロセスコードをデータとして使用して、前記エミュレータ・コードまたはインストルメンタ・コードを呼び出すかどうか決定する、エグゼクティブ・コードをさらに含む、
コンピュータで読取り可能なメモリデバイス。
【請求項１０】コンピュータメモリにロードされ実行中のユーザ・プロセスに補助的な制御コードを組み入れるためのコンピュータプログラムであって、
コンピュータメモリにロードされたユーザ・プロセスから少なくとも1つのコード命令に対する実行を呼び出し、
ユーザ・プロセスの実行を中断させ、
ユーザ・プロセスの状態値をコンピュータメモリにロードし、ユーザ・プロセスの状態値をユーザ・プロセスのメモリの占有されていない領域に動かし、
補助的な制御コードをユーザ・プロセスのメモリの占有されていない領域にロードし、ユーザ・プロセスが再開されるとき補助的な制御コードを実行するためにユーザ・プロセス状態値を変更し、
変更されたユーザ・プロセスの実行を再開し、 ユーザ・プロセス実行制御を補助的な制御コードにパスし、
補助的な制御コードによって、ユーザ・プロセスのメモリの占有されていない領域にロードされた状態値を使用し、置換命令を作成するためにユーザ・プロセス命令データとして使用し、補助的な制御コードを付けることなくユーザ・プロセスが作り出しただろうレジスタ状態値をロギングして、少なくとも1つのユーザ・プロセス命令を置換し実行するエミュレーション環境を確立する、
機能を実現するコンピュータプログラム。