"指定された共有ライブラリAPIApplicationProgrammingInterfaceの属する共有ライブラリを示す所属共有ライブラリをメモリのプロセス空間にマップし、マップされた前記所属共有ライブラリの先頭アドレスを保持し、マップされた前記所属共有ライブラリに属する前記指定に係る前記共有ライブラリAPIに対応するジャンプ命令のジャンプ先アドレスを記録すると共に、記録した前記ジャンプ先アドレスを持つ前記ジャンプ命令をカーネル飛び込み用システムコールへジャンプする割込命令に書き換えるライブラリAPIエントリ書換部と、前記ライブラリAPIエントリ書換部が書き換えた割込命令に対応する前記カーネル飛び込み用システムコールのエントリのジャンプ命令のジャンプ先アドレスを記録すると共に、前記ライブラリAPIエントリ書換部が書き換えた割込命令に対応する前記カーネル飛び込み用システムコールの前記エントリに設定されている前記ジャンプ命令を、所定のジャンプ命令によって呼ばれることで所定の処理を実行する任意コード実行部への前記所定のジャンプ命令に書き換えるシステムコールエントリ書換部とを備えたことを特徴とするエントリ書換装置。前記エントリ書換装置は、さらに、共有ライブラリAPIに対する所定の実行条件を記憶する実行条件記憶部と、前記任意コード実行部であって、前記所定のジャンプ命令によって呼ばれることで、前記実行条件記憶部が記憶する前記実行条件に基づいて、前記所定の処理を実行する任意コード実行部とを備えたことを特徴とする請求項1記載のエントリ書換装置。前記エントリ書換装置は、さらに、所定の共有ライブラリAPIに関する情報を記憶するシンボルテーブル記憶部を備え、前記任意コード実行部は、前記所定のジャンプ命令によって呼ばれた場合に、前記シンボルテーブル記憶部に記憶された情報を参照することによりどの前記共有ライブラリAPIから呼び出されたのかを判別し、判別した前記共有ライブラリAPIに対応する実行条件を前記実行条件記憶部から抽出し、抽出した前記共有ライブラリAPIに対応する前記実行条件に基づいて、前記所定の処理を実行することを特徴とする請求項2記載のエントリ書換装置。前記任意コード実行部は、判別した前記共有ライブラリAPIに対応する実行条件を前記実行条件記憶部から抽出した場合に、抽出した前記共有ライブラリAPIに対応する前記実行条件が呼び出された前記共有ライブラリAPIの状態に合致するかどうかを判別し、合致すると判別した場合に、抽出した前記共有ライブラリAPIに対応する前記実行条件に基づいて前記所定の処理を実行することを特徴とする請求項3記載のエントリ書換装置。前記エントリ書換装置は、さらに、アプリケーションプロセスごとにシンボル名と前記シンボルの開始アドレスとが記載され、バックトレースの実行に使用される個別シンボルテーブルを記憶する個別シンボルテーブル記憶部と、前記個別シンボルテーブル記憶部が記憶する前記個別シンボルテーブルを用いることにより、前記共有ライブラリAPIがどの関数を経由して呼び出されたかを特定する処理を示すバックトレースを実行するバックトレース実行部とを備えたことを特徴とする請求項4記載のエントリ書換装置。コンピュータを、指定された共有ライブラリAPIApplicationProgrammingInterfaceの属する共有ライブラリを示す所属共有ライブラリをメモリのプロセス空間にマップし、マップされた前記所属共有ライブラリの先頭アドレスを保持し、マップされた前記所属共有ライブラリに属する前記指定に係る前記共有ライブラリAPIに対応するジャンプ命令のジャンプ先アドレスを記録すると共に、記録した前記ジャンプ先アドレスを持つ前記ジャンプ命令をカーネル飛び込み用システムコールへジャンプする割込命令に書き換えるライブラリAPIエントリ書換部、前記ライブラリAPIエントリ書換部が書き換えた割込命令に対応する前記カーネル飛び込み用システムコールのエントリのジャンプ命令のジャンプ先アドレスを記録すると共に、前記ライブラリAPIエントリ書換部が書き換えた割込命令に対応する前記カーネル飛び込み用システムコールの前記エントリに設定されている前記ジャンプ命令を、所定のジャンプ命令によって呼ばれることで所定の処理を実行する任意コード実行部への前記所定のジャンプ命令に書き換えるシステムコールエントリ書換部、として機能させるためのエントリ書換プログラム。従来のシステムコールをフックしてOSやハードウェアのエラーを模擬する手法や、ライブラリのラッパ関数を用意して各種ライブラリ群のエラーを模擬する手法には、以下のような課題があった。1各種ライブラリAPIApplicationProgrammingInterface群のエラーを模擬するには、対象プログラムを改変する必要があり、組合せ試験、システム試験での利用が困難であるし、改変が行えない第三者プログラムには適用できない。2システムコールをフックする手法は、エラー注入などの任意のコードを実行する論理空間がカーネル空間30に限られ、一方、各種ライブラリ群が動作する論理空間はプロセス空間ユーザ空間である。よって、各種ライブラリAPIを同様にフックする手法が利用できない。敢えてフックしようとすると、予め任意コード実行用のコードを対象プログラムに埋め込む必要があり、これは、ラッパ関数を用いる場合と同様に対象プログラムを改変する必要がある。又は、カーネル空間30で実行しようとすると、カーネル空間30に飛び込む為に、フックしたい共有ライブラリAPIの1つ1つに個別に対応する疑似システムコールをOSカーネル内に用意する必要があり、OSカーネルの改変が必要になる。本発明は、各種ライブラリAPIをフックして任意のコードをカーネル空間内で実行できるような仕掛けをすることにより、対象となる情報システム内のOSカーネル及びプログラム群を改変せずに、エラー模擬やトレース情報の取得を可能とすることを目的とする。この発明のエントリ書換装置は、指定された共有ライブラリAPIApplicationProgrammingInterfaceの属する共有ライブラリを示す所属共有ライブラリをメモリのプロセス空間にマップし、マップされた前記所属共有ライブラリの先頭アドレスを保持し、マップされた前記所属共有ライブラリに属する前記指定に係る前記共有ライブラリAPIに対応するジャンプ命令のジャンプ先アドレスを記録すると共に、記録した前記ジャンプ先アドレスを持つ前記ジャンプ命令をカーネル飛び込み用システムコールへジャンプする割込命令に書き換えるライブラリAPIエントリ書換部と、前記ライブラリAPIエントリ書換部が書き換えた割込命令に対応する前記カーネル飛び込み用システムコールのエントリのジャンプ命令のジャンプ先アドレスを記録すると共に、前記ライブラリAPIエントリ書換部が書き換えた割込命令に対応する前記カーネル飛び込み用システムコールの前記エントリに設定されている前記ジャンプ命令を、所定のジャンプ命令によって呼ばれることで所定の処理を実行する任意コード実行部への前記所定のジャンプ命令に書き換えるシステムコールエントリ書換部とを備えたことを特徴とする。本発明により、対象となる情報システム内のOSカーネル及びプログラム群を改変せずに、エラー模擬やトレース情報の取得が可能となる。実施の形態1.図1は、対象計算機101エントリ書換装置、任意コード実行方式の動作原理を示す構成図である。図1において、対象計算機101は、試験検証の対象となる情報システムを構成するプログラム群が動作する計算機である。1条件設定コマンド部10は、対象計算機101を利用する為のマンマシンインターフェース手段を提供する。2システムコールエントリ書換部11は、カーネル飛び込み用システムコールエントリ31-1にあるカーネル飛び込み用システムコール実体31-2へのジャンプ命令を任意コード実行部32-1へジャンプ命令へ書き換える。3ライブラリAPIエントリ書換部12は、エラー注入やトレース情報取得などの任意のコードを実行したい任意の共有ライブラリAPIエントリ22-1にある共有ライブラリAPI実体22-2へのジャンプ命令を、カーネル飛び込み用システムコールエントリ31-1へとジャンプする為の割込命令に書き換える。4条件設定部13は、任意コードを実行する為の条件、例えば、呼出プロセスが指定のプログラムであった時のみ実行するなど、を実行条件テーブル32-3に設定する。5シンボルテーブル生成部14は、フックしたい共有ライブラリAPIが属する共有ライブラリの共有ライブラリシンボルテーブル32-4を生成し、共有ライブラリシンボルテーブル32-4に保存する。6任意コード実行部32-1は、実行条件テーブル32-3の条件に合致する場合に任意のコードを実行する。動作の説明次に動作について説明する。なお、実施の形態1では、任意のコードとしてエラー模擬を行うコードを実行する場合を例に説明するが、トレース情報を取得する場合や、他の任意のコードを実行する場合も同様である。図2は、対象計算機101の基本動作の内、事前準備段階の動作フローである。図3は、各構成要素がどこにアクセスしているかを示す図である。シンボルテーブル生成部14まず、シンボルテーブル生成部14は、図4に示すような共有ライブラリシンボルテーブル32-4に、操作者ユーザによって指定された共有ライブラリAPIに関する情報を登録し、既に登録済みの場合はなにも行わないS11。図4では、共有ライブラリ名、APIシンボル名及びAPIエントリアドレスが登録されている。条件設定部13次に,条件設定部13は、図5に示すような実行条件テーブル32-3に、操作者ユーザによる指定に従って、対象となる共有ライブラリAPIシンボル名、返値設定条件、呼出プログラム名などの情報を実行条件として登録するS12。なお、実行条件としては、操作者は、他にプロセスID、呼出元プログラム内の関数名などを指定可能である。ライブラリAPIエントリ書換部12次に、ライブラリAPIエントリ書換部12は、操作者によって指定された共有ライブラリAPIが属する共有ライブラリを、条件設定コマンド部10が動作しているAppプロセス空間20にマップし、マップした先頭アドレスを保持するS13。この先頭アドレスを0xVWXYとする。この先頭アドレスは、後述する図8のS28の処理で使用される。次に、ライブラリAPIエントリ書換部12は、図6のaに示すような、マップされた共有ライブラリの一部である共有ライブラリAPIエントリ22-1のうち、対象となる共有ライブラリAPIに対応するエントリのジャンプ命令例えば図6のaのBL0x2A00を読み取る。そして、ライブラリAPIエントリ書換部12は、この読み取った共有ライブラリAPI実体への本来のジャンプ先であるアドレスBL0x2A00を、図7図7のAPIエントリの部分に示すようなエントリ保存テーブル32-2fwriteのBL0x2A00に記録しS14、さらに、図6のaの対象ライブラリAPIエントリにあるジャンプ命令BL0x2A00を、カーネル飛び込み用システムコールに使用するrebootシステムコールへジャンプする割込命令INT0x~に書き換えるS15。なお、この例では、カーネル飛び込み用システムコールとしてrebootシステムコールを使用する場合を説明したが一例であり、rebootシステムコールを必ず使用する必要があるということではない。実際にシステムコールが呼ばれたのか、書き換えられたエントリから飛び込んできたのか、が簡易に判別できるシステムコールであれば良く、この条件に合致するシステムコールの一例として、rebootシステムコールを使用する場合を説明した。システムコールエントリ書換部11次に、システムコールエントリ書換部11は、カーネル飛び込み用システムコールに設定したrebootシステムコールのエントリ図6のbにあるカーネル飛び込み用システムコール実体31-2へのジャンプ命令のジャンプ先アドレス図6のbの0xABCDを、エントリ保存テーブル32-2に記録図7の上側に示すrebootの範囲しS16、カーネル飛び込み用システムコールのエントリにあるジャンプ命令図6のbのBL0xABCDを任意コード実行部32-1へのジャンプ命令に書き換える。以上が事前準備段階の動作フローである。図8は、対象計算機101の基本動作のうち、実際に対象となる情報システムを動作させて、検証試験する際の動作フローである。図9は、対象となったプログラムの実行フローの概略図である。ロードモジュール共有ライブラリAPI呼出21まず、ロードモジュール21内において共有ライブラリAPI例えばfwriteとするが呼び出される時には、ロードモジュール共有ライブラリAPI呼出21内から、図6aの共有ライブラリAPIエントリ22-1にジャンプしS21、事前に書き換えている割込命令INT0x~:カーネル飛び込み用システムコールへジャンプする割込命令により、OSカーネル31内にジャンプするS22。事前に書き換えられたrebootシステムコールエントリ任意コード実行部32-1へのジャンプ命令に書き換え済みのジャンプ命令により、ドライバ32内の任意コード実行部32-1にジャンプするS23。任意コード実行部32-1次に、任意コード実行部32-1は、まず、図10に示すような、CPUが持つ割込履歴レジスタを読み出して、どの共有ライブラリAPIエントリ22-1で割込をかけてジャンプしてきのか確認し、共有ライブラリAPIエントリアドレスを取得するS24。次に、任意コード実行部32-1は、呼出の第1、第2引数がrebootシステムコールのマジックコードであるか、第3引数が正しいrebootシステムコールのコマンドコードであるかを確認するS25。任意コード実行部32-1は、正しい引数であれば、エントリ保存テーブル32-2に記録してあるrebootシステムコールの実体アドレスにジャンプしてシステムコールの処理を行うS26。正しい引数でなければ検証対象プロセスの可能性がある、以下の処理になる。共有ライブラリAPIエントリのアドレスは、図11に示すように、プロセスごとに共有ライブラリのマップされるアドレスが異なる。よって、任意コード実行部32-1は、自プロセス内のメモリマップテーブルを参照して、S24で取得した共有ライブラリAPIエントリアドレスが、どの共有ライブラリに属するのかを確認するS27。なお、この段階では、シンボル名までは特定できない。アドレスのみ判っているので、任意コード実行部32-1は、共有ライブラリのマップされたアドレスから、どの共有ライブラリがマップされたアドレス領域かを判断出来る。属する共有ライブラリS27で特定した共有ライブラリが、特定した共有ライブラリのマップされた先頭アドレスと、共有ライブラリAPIのエントリアドレスS24で取得から、割り込みに係る共有ライブラリの、先頭から共有ライブラリAPIのエントリアドレスまでのアドレス差を算出ΔアドレスとおくS28する。そして、任意コード実行部32-1は、共有ライブラリシンボルテーブル33-4内を検索して、対象の共有ライブラリAPIであるかをチェックする。この際、任意コード実行部32-1は、事前準備段階のS13で保持した先頭アドレス0xVWXYに、S28で算出したΔアドレスを加えて加算アドレス値を得る。そして、任意コード実行部32-1は、この加算アドレス値に相当するアドレスを共有ライブラリシンボルテーブル32-4から見つけ、かつ、その行に割り込み係る共有ライブラリの名があるかどうかでチェックを行う。対象の共有ライブラリAPIでなければ、正規に呼ばれたrebootシステムコールであると判断し、エントリ保存テーブル32-2にあるrebootシステムコールの実体にジャンプするS29。なおS29でNOの場合とは、前記チェックによって特定された行のシンボル名が、図5の実行条件テーブル32-3に登録されたAPIシンボル名ではない場合である。rebootシステムコールのマジックコードに該当せずにこちらに分岐S25でNOしたのに、実行条件テーブル32-3にシンボルがないということは、任意コード実行部32-1は、ロードモジュール共有ライブラリAPI呼出21がrebootシステムコールを誤った引数で呼んでいると判断する。対象の共有ライブラリAPIの場合、実行条件テーブル32-3を参照し、呼出元プログラム、返値条件などが合致するかを判定するS30。合致しない場合は、任意コード実行部32-1は、エントリ保存テーブル32-2にある共有ライブラリAPIの正規の飛び先アドレスにジャンプするS33。条件に合致した場合は、任意コード実行部32-1は、返値設定を行いS31、カーネルスタック内に保存されたRPリターンポインタが示すAppプロセス空間20のロードモジュール共有ライブラリAPI呼出21内の共有ライブラリAPI呼出の直後にジャンプするS32。これにより、各種ライブラリAPIをフックして任意のコードをカーネル空間30内で実行できるようにすることにより、対象となる情報システム内のOSカーネル31、及び、プログラム群を改変せずに、エラー模擬やトレース情報の取得が可能となる。実施の形態2.次に、図12~図18を参照して実施の形態2の対象計算機102を説明する。対象計算機102は、実施の形態1の対象計算機101に対して、さらに、バックトレース実行部32-5と、個別プロセスシンボルテーブル32-6図17とを備えた構成である。図12は、対象計算機102のブロック図である。図13は、バックトレース実行部32-5の動作概念を示している。図14は、共有ライブラリの呼ばれた経路を示す概念図である。図15は、共有ライブラリの呼ばれた経路を示す概念図である。図16は、バックトレース実行部32-5の動作フローである。図17は、個別プロセスシンボルテーブル32-6を示す図である。図18は、実施の形態2における実行条件テーブルを示す図である。実施の形態2の対象計算機102は、実施の形態1で説明した内容に加えて、共有ライブラリAPIの呼出元経路を条件指定可能とする。対象計算機102は、図12において、実施の形態1での構成図1に加えて、バックトレース実行部32-5と個別プロセスシンボルテーブル32-6図12では、個別Procシンボルテーブルと表記したを持つ。動作の説明次に動作について説明する。図13は、バックトレース実行部32-5の動作概念を示している。バックトレース実行部32-5は、図8の返値設定条件に合致するかの判断時図8のS30に呼ばれる。バックトレース実行部32-5は、指定された経路、例えば、図14において、共有ライブラリAPIslib_2が、sub_02、sub_13を経由して呼ばれた時に合致するかを判断する為にバックトレースを行う。図16は動作フローを示す。まず、図18の実行条件テーブルに示すように、呼び出されたAPIslib_2に対して、返値設定条件として、呼出元条件が設定されていた場合、図16のフローで条件確認が行われる。図16のフローにおいては、まず、共有ライブラリAPIslib_2が呼び出された時、即ち、システムコールに書き換えられているので割込が発生した時に行われるレジスタ退避領域図13の1より、割込発生時のプログラムカウンタPCの値、及び、スタックポインタSPの値を取得するS41。次にプログラムカウンタ値が指すアドレスが、個別プロセスシンボルテーブル図17上のどのシンボルに該当するアドレスか確認して、そのシンボル名を保持するS44。例えば、PCが0x00400550を指していたとすれば、シンボル名sub_12のアドレス領域に該当する。次に保持されたシンボル名がmainかどうかを確認しS45、Yesであれば、最後までバックトレースが完了したとして条件に合致しないとしてフローを終了するS46。Noであれば、保持したシンボル名が条件にあっているか確認しS47、Yesの場合、更に条件を全て満たしたかを確認するS48。Yesであれば、条件に合致したとしてフローを終了するS49。Noであれば、スタックポインタが指すアドレススタック領域の先頭を指すよりリターンポインタRP値と次のスタックポインタSP値を取得するS50。次にリターンポインタ値が指すアドレスが、個別プロセスシンボルテーブル図17上のどのシンボルに該当するアドレスか確認して、そのシンボル名を保持するS51。以降、S45~S51をフローに従って終了条件を満たすまで繰り返す。なお、図16のS42の個別プロセスシンボルテーブル図17の生成の手段としては、ロードモジュールのシンボルテーブル、及び、そのプロセスにマップされた共有ライブラリのシンボルテーブルのアドレスを演算したアドレス共有ライブラリのマップされた先頭アドレスにシンボルテーブルに記録されたアドレスを足すをアドレスでソートすることによりなされる。これにより、例えば、図15のように複数の関数から呼ばれ得る共有ライブラリAPIをフックしてエラーを注入したりする場合に、特定のエラー処理を試験しようとしても特定できないという課題を解決でき、網羅的な試験を可能とする効果がある。実施の形態3.図19、図20を参照して実施の形態3を説明する。実施の形態3は、コンピュータである対象計算機101、102のハードウェア構成を説明する。図19は、コンピュータである対象計算機101あるいは対象計算機102の外観の一例を示す図である。図20は、対象計算機101あるいは対象計算機102のハードウェア資源の一例を示す図である。以下の説明は対象計算機101とする。対象計算機102についても対象計算機101の説明がそのまま当てはまる。外観を示す図19において、対象計算機101は、システムユニット830、CRTCathodeRayTubeやLCD液晶の表示画面を有する表示装置813、キーボード814KeyBoard:K/B、マウス815、コンパクトディスク装置818CDD:CompactDiskDriveなどのハードウェア資源を備え、これらはケーブルや信号線で接続されている。システムユニット830はネットワークに接続している。またハードウェア資源を示す図20において、対象計算機101は、プログラムを実行するCPU810CentralProcessingUnitを備えている。CPU810は、バス825を介してROMReadOnlyMemory811、RAMRandomAccessMemory812、表示装置813、キーボード814、マウス815、通信ボード816、CDD818、磁気ディスク装置820と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置820の代わりに、光ディスク装置、フラッシュメモリなどの記憶装置でもよい。RAM812は、揮発性メモリの一例である。ROM811、CDD818、磁気ディスク装置820等の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部、格納部、バッファの一例である。通信ボード816、キーボード814などは、入力部、入力装置の一例である。また、通信ボード816、表示装置813などは、出力部、出力装置の一例である。通信ボード816は、ネットワークに接続されている。磁気ディスク装置820には、オペレーティングシステム821OS、ウィンドウシステム822、プログラム群823、ファイル群824が記憶されている。プログラム群823のプログラムは、CPU810、オペレーティングシステム821、ウィンドウシステム822により実行される。上記プログラム群823には、以上の実施の形態の説明において~部として説明した機能を実行するプログラムが記憶されている。プログラムは、CPU810により読み出され実行される。ファイル群824には、以上の実施の形態の説明において、~の判定結果、~の算出結果、~の抽出結果、~の生成結果、~の処理結果として説明した情報や、データや信号値や変数値やパラメータなどが、~ファイルや~データベースの各項目として記憶されている。~ファイルや~データベースは、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU810によりメインメモリやキャッシュメモリに読み出され、抽出検索参照比較演算計算処理出力印刷表示などのCPUの動作に用いられる。抽出検索参照比較演算計算処理出力印刷表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。また、以上に述べた実施の形態の説明において、データや信号値は、RAM812のメモリ、CDD818のコンパクトディスク、磁気ディスク装置820の磁気ディスク、その他光ディスク、ミニディスク、DVDDigitalVersatileDisk等の記録媒体に記録される。また、データや信号は、バス825や信号線やケーブルその他の伝送媒体によりオンライン伝送される。また、以上の実施の形態の説明において、~部として説明したものは、~手段、であってもよく、また、~ステップ、~手順、~処理であってもよい。すなわち、~部として説明したものは、ソフトウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。プログラムはCPU810により読み出され、CPU810により実行される。すなわち、プログラムは、以上に述べた~部としてコンピュータを機能させるものである。あるいは、以上に述べた~部の手順や方法をコンピュータに実行させるものである。以上の実施の形態では、装置としての対象計算機101エントリ書換装置を説明したが、対象計算機101の動作をエントリ書換プログラムとしても把握できることは以上の説明から明らかである。以上の実施の形態では、以下の手段、要素を備え、アプリケーションプログラムを改変せずに任意のコードをカーネル空間で実行可能とする任意コード実行方式を説明した。a試験実施者と対話的に任意コード実行条件の入力を受け付けて、条件設定部に対して実行条件テーブルへの書き込みを指示すると共に、ライブラリAPIエントリ書換部に対して任意コード実行のトリガーとなるライブラリAPIエントリの書換を指示すると共に、システムコールエントリ書換部に対してカーネル飛び込み用システムコールに指定したシステムコールのエントリの書換を指示すると共に、シンボルテーブル生成部に対して対象となる共有ライブラリのシンボルテーブルの生成を指示する手段条件設定コマンド;b対象プログラムが動的にリンクする共有ライブラリ内の対象となる共有ライブラリAPIエントリの飛び先をカーネル飛び込み用システムコールエントリのアドレスに書き換え、元のアドレスをエントリ保存テーブルに保持する手段ライブラリAPIエントリ書換部;cカーネル内のシステムコールエントリの飛び先を任意コード実行部へと書き換える手段システムコールエントリ書換部;d任意コードを実行する条件として、対象共有ライブラリAPI、指定プログラム、プロセスIDなどの組合わされた条件を実行条件テーブルに書き込む手段条件設定部;e対象となる共有ライブラリAPIが属する共有ライブラリを検索し、その共有ライブラリのシンボルテーブルを相対アドレス値でソートした状態で共有ライブラリシンボルテーブルに保存する手段シンボルテーブル生成部;f呼び出されると、どの共有ライブラリAPIから呼び出されたのかを判別した上で実行条件テーブルをチェックし、条件に合致した場合、指定されたコードを実行する手段任意コード実行部;以上の実施の形態では、さらに以下の手段、要素を備え、呼出元の関数が呼ばれた経路の条件指定を可能とする任意コード実行方式を説明した。a共有ライブラリAPIがロードモジュール内のどの関数を経由して呼び出されたかを検索する手段バックトレース実行部;bバックトレースを実行する為に必要な各アプリケーションプロセスの個別のシンボルテーブルを保持する要素個別プロセスシンボルテーブル;"