リンカーとライブラリ

エージェント操作インタフェース

rd_init()

この関数は、「rtld-デバッガ」バージョン条件を確立します。ベースとなるバージョンは、RD_VERSION1 として定義されています。現在の「バージョン」は常に RD_VERSION で定義されます。

rd_err_e rd_init(int version);

Solaris 8 10/00 で追加されたバージョン RD_VERSION2 は、rd_loadobj_t 構造体を拡張するものです。詳細は、読み込み可能オブジェクトの走査rl_flags rl_bend、および rl_dynamic フィールドを参照してください。

Solaris 8 01/01 で追加されたバージョン RD_VERSION3 は、rd_plt_info_t 構造体を拡張するものです。詳細は、プロシージャのリンクテーブルのスキップpi_baddr および pi_flags フィールドを参照してください。

制御プロセスのバージョン条件が使用可能な「rtld-デバッガ」インタフェースよりも大きい場合は、RD_NOCAPAB が返されます。

rd_new()

この関数は、新しいエクスポートのインタフェースエージェントを作成します。

rd_agent_t * rd_new(struct ps_prochandle * php);

php は、制御プロセスによってターゲットプロセスを特定するために作成された cookie です。この cookie は、制御プロセスによってコンテキストを維持するために提供される重要なインタフェースで使用されるものであり、「rtld-デバッガ」インタフェースに対して不透明です。

rd_reset()

この関数は、rd_new() に指定された同じ ps_prochandle 構造に基づくエージェント内の情報をリセットします。

rd_err_e rd_reset(struct rd_agent * rdap);

この関数は、ターゲットプロセスが再スタートされると呼び出されます。

rd_delete()

この関数は、エージェントを削除し、それに関連するすべての状態を解除します。

void rd_delete(struct rd_agent * rdap);