运行时链接程序可执行许多操作,包括将目标文件映射到内存中以及绑定符号。调试程序通常需要在分析应用程序的过程中访问说明这些运行时链接程序操作的信息。这些调试器作为不同于其所分析的应用程序的进程运行。
本节介绍了用于监视和修改其他进程中的动态链接应用程序的 rtld-debugger 接口。此接口的体系结构采用 libc_db(3LIB) 中所使用的模型。
使用 rtld-debugger 接口时,至少涉及两个进程:
控制进程与 rtld-debugger 接口库链接,并使用该接口来检查目标进程的动态方面。64 位控制进程可以调试 64 位目标和 32 位目标。但是,32 位控制进程只能调试 32 位目标。
当控制进程为调试器并且其目标为动态可执行文件时,最需要使用 rtld-debugger 接口。
rtld-debugger 接口可启用目标进程的以下活动:
与运行时链接程序初次会合。
通知装入和卸载动态目标文件。
检索与任何装入的目标文件相关的信息。
跳过过程链接表项。
启用目标文件填充。