如果在直接使用硬件计数器库 libcpc.so(3) 的程序上收集硬件计数器上溢分析数据,则收集器库对硬件计数器的使用将优先于程序对它们的使用。这是通过对硬件计数器库中的函数进行干预来实现的。此时,收集器库会拦截程序对硬件计数器函数的调用,调用将返回值 -1,并设置 errno 以指示“忙信号”。要收集硬件计数器实验,程序应能够在不失败的情况下处理该值。
有一种情况,硬件计数器上溢分析在使用 libcpc.so 的程序上将会失败。如果您不预先加载收集器库 libcollector.so 就将 dbx 连接到某个进程,并且启用了性能数据收集,则最终的硬件计数器实验结果很可能会含有错误的数据。
另请参见 | |
---|---|
在正运行的进程上收集性能数据 硬件计数器数据 |