Sun Studio 12:性能分析器

dbx 实验,在正在运行的进程上

在正在运行的进程上使用 dbx 启动实验时,它会创建实验目录,但不能使用 LD_PRELOAD 环境变量。dbx 对目标进行交互式函数调用以打开 libcollector.so,然后调用 libcollector.so 初始化例程,就像它创建进程时那样。 与 collect 实验中一样,数据由 libcollector.so 写入。

由于进程启动时 libcollector.so 不在目标地址空间中,因此取决于插入用户可调用函数(同步跟踪、堆跟踪、MPI 跟踪)的任何数据收集可能都不起作用。通常,符号已经解析为基础函数,因此无法发生插入。此外,以下后续进程也取决于插入,对于 dbx 在正在运行的进程上创建的实验无法正常工作。

如果在使用 dbx 启动进程之前或者在使用 dbx 附加到正在运行的进程之前已显式预装入 libcollector.so,则可以收集跟踪数据。