Oracle Solaris Studio 12.2:使用 dbx 调试程序

对连接的进程使用运行时检查

除非因已分配受影响的内存而无法检测到 RUI,否则可以对连接的进程使用运行时检查。但是,该进程在启动时必须预装入了rtcaudit.so。如果连接的进程是 64 位进程,请使用相应的 64 位 rtcaudit.so,该文件位于:

/installation_directory/lib/dbx/sparcv9/runtime/rtcaudit.so(64 位 SPARC 平台)

/installation_directory/lib/dbx/amd64/runtime/rtcaudit.so(AMD64 平台)

/installation_directory/lib/dbx/runtime/rtcaudit.so(32 位平台)

预装入 rtcaudit.so,请键入:


% setenv LD_AUDIT path-to-rtcaudit/rtcaudit.so

LD_AUDIT 环境变量设置为仅在需要时预装入 rtcaudit.so,而不要一直将其保持为装入状态。例如:


% setenv LD_AUDIT...
% start-your-application
% unsetenv LD_AUDIT

连接到进程后,便可以启用运行时检查。

如果要连接的程序从某一其他程序派生或执行,则需要为主程序(派生者)设置 LD_AUDIT。在派生和执行中会继承 LD_AUDIT 的设置。

LC_AUDIT 环境变量既适用于 32 位程序也适用于 64 位程序,这导致很难为运行 64 位程序的 32 位程序或运行 32 位程序的 64 位程序选择正确的库。某些版本的 Solaris 操作系统支持 LD_AUDIT_32 环境变量和 LD_AUDIT_64 环境变量(它们分别仅影响 32 位程序和 64 位程序)。请参见针对您所运行 Solaris 操作系统的版本的《链接程序和库指南》,确定是否支持这些变量。