Oracle® Solaris Studio 12.4:使用 dbx 调试程序

退出打印视图

更新时间: 2015 年 1 月
 
 

运行 Linux 的系统上的连接进程

在运行 Linux 操作系统的系统中,进程启动时必须预装入 librtc.so。如果连接的进程是在 AMD64 处理器中运行的 64 位进程,请使用相应的 64 位 librtc.so,该文件位于:

64 位 AMD64 平台:/install-dir/lib/dbx/amd64/runtime/librtc.so

32 位 AMD64 平台 /install-dir/lib/dbx/runtime/librtc.so

要预装入 librtc.so

% 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 版本的《链接程序和库指南》,确定是否支持这些变量。