pm_set_program_group_mx 和 pm_set_program_group_mm 子例程
用途
为目标线程设置计数器多路复用方式和多方式的性能监视器程序,并创建计数组。
库
性能监视器 API 库 (libpmapi.a)
语法
描述
pm_set_program_group_mx 和 pm_set_program_group_mm 子例程仅支持 1: 1 线程技术模型。 它们已分别被支持 1: 1 和 M: N 线程技术模型的 pm_set_program_pgroup_mx 和 pm_set_program_pgroup_mm 子例程取代。 对 pm_set_program_pgroup_mx 或 pm_set_program_pgroup_mm 子例程的调用分别等同于对 ptid 参数等于 0 的 pm_set_program_pgroup_mx 或 pm_set_program_pgroup_mm 子例程的调用。
对于目标内核线程, pm_set_program_group_mx 和 pm_set_program_group_mm 子例程分别以计数器多路复用方式或多方式设置 Performance Monitor 程序。 线程必须停止,并且必须是受调用进程控制的调试进程的一部分。
pm_set_program_group_mx 子例程设置包含要计数的事件数组的列表以及要计数的方式。 该方式是所有事件列表的全局方式。 要计数的事件位于事件标识列表的数组中。
pm_set_program_group_mm 子例程设置包含要计数的事件数组的列表,以及用于计数每个事件数组的关联方式。 为每个事件数组定义计数方式。
必须从 pm_initialize 子例程返回的列表中选择事件标识。
这两个子例程都创建一个计数组,其中包括目标线程以及它或它的任何后代将来将创建的任何线程。 该组还可以定义为包含属于目标进程的所有现有线程和未来线程。
子例程的计数方式包括 "用户方式" 和/或 "内核方式" 以及 "初始计数状态"。 对于 "用户方式" 和 "内核方式" ,缺省值设置为 "关闭"。 初始缺省状态设置为延迟计数,直到调用 pm_start_group 子例程为止。
当您使用 pm_set_program_group_mm 子例程进行多方式计数时, "进程树方式" 和 "开始计数方式" 由它们在第一个编程集中定义的值固定。
如果列表包含可与阈值一起使用的事件 (如 pm_init 子例程所指示) ,那么也可以指定阈值。
参数
| 项 | 描述 |
|---|---|
| pid | 指定目标线程的进程标识。 目标进程必须是调用进程的调试器。 |
| tid | 指定目标线程的线程标识。 |
| * 程序 | 指定要在 "性能监视器" 设置中使用的事件和方式。 prog 参数支持以下方式:
|
| * 进步毫米 | 指定要在 "性能监视器" 设置中使用的事件和方式。 prog_mm 参数支持以下方式:
在计数的第一个设置修订值中定义的 PM_PROCTREE 方式和 PM_COUNT 方式。 |
返回值
| 项 | 描述 |
|---|---|
| 0 | 操作成功完成。 |
| 正错误代码 | 请参阅 pm_error (pm_error Subroutine) 子例程以解码错误代码。 |
错误代码
请参阅 pm_error 子例程。
文件
| 项 | 描述 |
|---|---|
| /usr/include/pmapi.h | 定义标准宏,数据类型和子例程。 |