跳过导航链接 | |
退出打印视图 | |
Oracle Solaris Studio 12.3:使用 dbx 调试程序 Oracle Solaris Studio 12.3 Information Library (简体中文) |
除非因已分配受影响的内存而无法检测到 RUI,否则可以对连接的进程使用运行时检查。
在运行 Solaris 操作系统的系统中,进程启动时必须预装入 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 位平台)
% 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 的设置。如果 32 位程序派生或执行 64 位程序,或 64 位程序派生或执行 32 位程序,则该解决方案将不起作用。
LC_AUDIT 环境变量既适用于 32 位程序也适用于 64 位程序,这导致很难为运行 64 位程序的 32 位程序或运行 32 位程序的 64 位程序选择正确的库。某些版本的 Solaris 操作系统支持 LD_AUDIT_32 环境变量和 LD_AUDIT_64 环境变量(它们分别仅影响 32 位程序和 64 位程序)。请参见针对您所运行 Solaris 版本的《链接程序和库指南》,确定是否支持这些变量。
在运行 Linux 操作系统的系统中,进程启动时必须预装入 librtc.so。如果连接的进程是在 AMD64 处理器中运行的 64 位进程,请使用相应的 64 位 librtc.so,该文件位于:
/installation_directory/lib/dbx/amd64/runtime/librtc.so(64 位 AMD64 平台)
/installation_directory/lib/dbx/runtime/librtc.so(32 位平台)
% setenv LD_PRELOAD path-to-rtcaudit/librtc.so
将 LD_PRELOAD 环境变量设置为仅在需要时预装入 librtc.so,而不要一直将其保持为装入状态。例如:
% setenv LD_PRELOAD... % start-your-application % unsetenv LD_PRELOAD
连接到进程后,便可以启用运行时检查。
如果要连接的程序从某一其他程序派生或执行,则必须为主程序(派生者)设置 LD_PRELOAD。在派生和执行中会继承 LD_PRELOAD 的设置。如果 32 位程序派生或执行 64 位程序,或 64 位程序派生或执行 32 位程序,则该解决方案将不起作用。
LC_PRELOAD 环境变量既适用于 32 位程序也适用于 64 位程序,这导致很难为运行 64 位程序的 32 位程序或运行 32 位程序的 64 位程序选择正确的库。某些版本的 Linux 支持 LD_PRELOAD_32 环境变量和 LD_PRELOAD_64 环境变量(它们分别仅影响 32 位程序和 64 位程序)。请参见针对您所运行 Linux 版本的《链接程序和库指南》,确定是否支持这些变量。