Oracle® Solaris 11.2 链接程序和库指南

退出打印视图

更新时间: 2014 年 7 月
 
 

运行时链接程序调试器接口

运行时链接程序可执行许多操作,包括将目标文件映射到内存中以及绑定符号。调试程序通常需要在分析应用程序的过程中访问说明这些运行时链接程序操作的信息。这些调试器作为不同于其所分析的应用程序的进程运行。

本节介绍了用于监视和修改其他进程中的动态链接应用程序的 rtld-debugger 接口。此接口的体系结构采用 libc_db(3LIB) 中所使用的模型。

使用 rtld-debugger 接口时,至少涉及两个进程:

  • 一个或多个目标进程。目标进程必须动态链接,对于 32 位进程,使用运行时链接程序 /usr/lib/ld.so.1,对于 64 位进程,使用 /usr/lib/64/ld.so.1

  • 控制进程与 rtld-debugger 接口库链接,并使用该接口来检查目标进程的动态方面。64 位控制进程可以调试 64 位目标和 32 位目标。但是,32 位控制进程只能调试 32 位目标。

当控制进程为调试器并且其目标为动态可执行文件时,最需要使用 rtld-debugger 接口。

rtld-debugger 接口可启用目标进程的以下活动:

  • 与运行时链接程序初次会合。

  • 通知装入和卸载动态目标文件。

  • 检索与任何装入的目标文件相关的信息。

  • 跳过过程链接表项。

  • 启用目标文件填充。