リンカーとライブラリ

エージェント操作

rd_init()

rd_err_e rd_init(int version);

この関数は、rtld-デバッガバージョン条件を確立します。現在バージョンは、RD_VERSION によって定義されます。

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

rd_new()

rd_agent_t * rd_new(struct ps_prochandle * php);

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

rd_reset()

rd_err_e rd_reset(struct rd_agent * rdap);

この関数は、rd_new() に指定された同じ ps_prochandle 構造に基づくエージェント内の情報をリセットします。この関数は、ターゲットプロセスが再スタートされると呼び出されます。

rd_delete()

void rd_delete(struct rd_agent * rdap);

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