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