pm_get_data_pthread , pm_get_tdata_pthread 或 pm_get_Tdata_pthread 子例程
用途
返回目标 pthread 的性能监视器数据。
库
性能监视器 API 库 (libpmapi.a)
语法
#include <pmapi.h>
int pm_get_data_pthread (pid, tid, ptid, *pmdata)
pid_t pid;
tid_t tid;
ptid_t ptid;
pm_data_t *pmdata;
int pm_get_tdata_pthread (pid, tid, ptid, *pmdata, *time)
pid_t pid;
tid_t tid;
ptid_t ptid;
pm_data_t *pmdata;
timebasestruct_t *time;
int pm_get_Tdata_pthread (pid, tid, ptid,*pmdata, * times)
pid_t pid;
tid_t tid;
ptid_t ptid;
pm_data_t *pmdata;
pm_accu_time_t *times; 描述
pm_get_data_pthread 子例程检索目标 pthread 的当前性能监视器数据。 pthread 必须停止,并且必须是在调用进程控制下的 debuggee 进程的一部分。
pm_get_tdata_pthread 子例程检索目标 pthread 的当前性能监视器数据以及指示上次读取硬件计数器的时间戳记。
pm_get_Tdata_pthread 子例程检索目标 pthread 的当前性能监视器数据,并计算事件的累积时间 (时间基准, PURR 时间和 SPURR 时间)。
如果 pthread 以 1: 1 方式运行,那么必须仅指定 tid 参数。 如果 pthread 以 m: n 方式运行,那么必须仅指定 ptid 参数。 如果同时指定了 ptid 和 tid 参数,那么它们必须引用具有指定的 ptid 参数的单个 pthread ,并且当前正在具有指定的 tid 参数的内核线程上运行。
性能监视器数据始终是 64 位值的集合 (在所使用的机器上每个硬件计数器一个)。
参数
| 项 | 描述 |
|---|---|
| pid | 目标 pthread 的进程标识。 目标进程必须是调用者进程的调试器。 |
| tid | 目标 pthread 的线程标识。 要忽略此参数,请将其设置为 0。 |
| ptid | 目标 pthread 的 pthread 标识。 要忽略此参数,请将其设置为 0。 |
| * pmdata | 指向用于返回目标 pthread 的性能监视器数据的结构的指针。 |
| * 时间 | 指向包含上次读取硬件性能监视计数器时的时间基准值的结构的指针。 这可以使用 time_base_to_time 子例程转换为时间。 |
| * 次 | 指向包含事件计数的累积时间 (时间基准, PURR 时间和 SPURR 时间) 的结构的指针。 每次计数器都可以使用 time_base_to_time 子例程转换为时间。 |
返回值
| 项 | 描述 |
|---|---|
| 重大安全事件数量 | 未发生错误。 |
| 正错误代码 | 请参阅 pm_error 子例程 以解码错误代码。 |
错误代码
请参阅 pm_error 子例程。
文件
| 项 | 描述 |
|---|---|
| /usr/include/pmapi.h | 定义标准宏,数据类型和子例程。 |