pm_get_program_thread_mx 和 pm_get_program_thread_mm 子例程
用途
检索目标线程的计数器多路复用方式和多方式下的 "性能监视器" 设置。
库
性能监视器 API 库 (libpmapi.a)
语法
描述
这些子例程仅支持 1: 1 线程技术模型。 它们已分别被支持 1: 1 和 M: N 线程模型的 pm_get_program_pthread_mx 和 pm_get_program_pthread_mm 子例程取代。 对 pm_get_program_thread_mx 子例程或对 pm_get_program_thread_mm 子例程的调用分别相当于对 pm_get_program_pthread_mx 子例程或具有等于 0 的 ptid 参数的 pm_get_program_pthread_mm 子例程的调用。
pm_get_program_thread_mx 子例程和 pm_get_program_thread_mm 子例程检索目标内核线程的性能监视器设置。 线程必须停止,并且必须是在调用进程控制下的调试进程的一部分。 这包括方式信息和正在计数的事件,这些事件位于事件标识列表的数组中。 事件标识来自 pm_initialize 子例程返回的列表。
在多路复用方式下计数时,该方式对于所有事件列表都是全局方式。 以多方式计数时,会将方式与每个事件列表相关联。
计数模式包括用户模式,内核模式和当前计数状态。
如果列表包含可与阈值一起使用的事件 (如 pm_init 子例程所指示) ,那么还会返回阈值值。
用户应用程序必须释放已分配的数组以存储事件列表 ( prog 参数中的 events_set 字段)。
参数
| 项 | 描述 |
|---|---|
| pid | 目标线程的进程标识。 目标进程必须是调试进程的自变量。 |
| tid | 目标线程的线程标识。 |
| * 程序 | 返回设置的性能监视器事件和方式。 它支持以下方式:
|
| * 进步毫米 | 返回设置了哪些性能监视器事件和关联方式。 它支持以下方式:
PM_PROCTREE 方式和 PM_COUNT 方式是所有方式集的公共方式。 |
返回值
| 项 | 描述 |
|---|---|
| 重大安全事件数量 | 未发生错误。 |
| 正错误代码 | 请参阅 pm_error 子例程 以解码错误代码。 |
错误代码
请参阅 pm_error 子例程。
文件
| 项 | 描述 |
|---|---|
| /usr/include/pmapi.h | 定义标准宏,数据类型和子例程。 |