pm_get_program_pgroup_mx 和 pm_get_program_pgroup_mm 子例程

用途

以计数器多路复用方式和多方式检索目标 pthread 所属的计数组的性能监视器设置。

性能监视器 API 库 (libpmapi.a)

语法

#include <pmapi.h>

int pm_get_program_pgroup_mx ( pid,  tid,  ptid,  *prog) 
pid_t pid; 
tid_t tid;
ptid_t ptid; 
pm_prog_mx_t *prog; 

int pm_get_program_pgroup_mm ( pid, tid, ptid, prog_mm)
pid_t pid;
tid_t tid;
ptid_t ptid;
pm_prog_mm_t *prog_mm;

描述

pm_get_program_pgroup_mxpm_get_program_pgroup_mm 子例程检索目标 pthread 所属的计数组的性能监视器设置。 pthread 必须停止,并且必须是 debuggee 进程的一部分,该进程在调用进程的控制下。 这包括方式信息和正在计数的事件,这些事件位于事件标识列表的数组中。 事件标识来自 pm_inititialize 子例程返回的列表。

如果 pthread 以 1: 1 方式运行,那么必须仅指定 tid 参数。 如果 pthread 以 m: n 方式运行,那么必须仅指定 ptid 参数。 如果同时指定了 ptidtid 参数,那么它们必须引用指定了 ptid 参数的单个 pthread ,并且当前正在指定了 tid 参数的内核线程上运行。

在多路复用方式下计数时,该方式对于所有事件列表都是全局方式。 在多模式中计数时,会有一个模式与每个事件列表相关联。

计数模式包括用户模式和内核模式,以及当前计数状态。

如果列表包含可与阈值一起使用的事件 (如 pm_initialize 子例程所指示) ,那么还会返回阈值值。

用户应用程序必须释放已分配的数组以存储事件列表 ( prog 参数中的 events_set 字段)。

参数

描述
pid 目标 pthread 的进程标识。 目标进程必须是调试进程的自变量。
tid 目标 pthread 的线程标识。 要忽略此参数,请将其设置为 0。
ptid 目标 pthread 的 pthread 标识。 要忽略此参数,请将其设置为 0。
* 程序 返回设置的性能监视器事件和方式。 它支持以下方式:
用户
对以用户方式运行的进程进行计数。
PM_KERNEL
对运行内核方式的进程进行计数。
PM_COUNT
正在计数。
PM_PROCESS
进程级别计数组。
*进步毫米 返回设置了哪些性能监视器事件和关联方式。 它支持以下方式:
用户
正在对以用户方式运行的进程进行计数。
PM_KERNEL
正在内核方式下运行的进程计数。
PM_COUNT
正在计数。
PM_PROCTREE
计数仅适用于调用进程及其后代。

PM_PROCTREE 方式和 PM_COUNT 方式是所有方式集的公共方式。

返回值

描述
0 未发生错误。
Positive error code 请参阅 pm_error 子例程 以解码错误代码。

错误代码

请参阅 pm_error 子例程

文件

描述
/usr/include/pmapi.h 定义标准宏,数据类型和子例程。