安全性注意事项
系统级 API 调用仅可供 root 用户使用,但使用流程树选项时除外。 在这种情况下,锁定机制会阻止来自多个进程的调用。 此机制确保从创建系统级上下文到删除这些上下文之间的一个进程对 API 的所有权和独占访问权。
启用流程树选项将导致仅对调用流程及其后代进行计数; 缺省值是对每个处理器上的所有活动进行计数。
因为如果正在使用的线程上下文,那么系统级 API 将报告虚假数据,因此系统级 API 调用不会与线程级 API 调用同时启用。 第一个线程上下文的分配将采用系统级 API 锁定,直到取消分配最后一个上下文之后才会释放该锁定。
使用第一方调用时,仅允许线程修改其自己的性能监视器上下文。 此规则的唯一例外是在进行组级别调用时,这显然会影响组上下文,但也会影响其他线程的上下文。 删除组将删除与该组相关联的所有上下文,即,调用者上下文,组上下文以及属于该组中所有线程的所有上下文。
只能从目标进程的调试器程序访问不属于调用线程或其组的 Performance Monitor 上下文。 仅当目标进程被 API 调用者 p跟踪 时,才允许第三方 API 调用,即,调用者已连接到目标进程,并且目标进程已停止,或者目标进程已在 /proc 文件系统事件上停止,并且调用者具有打开其控制文件所需的特权。
在可以对 API 进行任何第三方调用之前,调试器程序必须已连接到已调试的线程,这将确保 API 的安全级别将与调试器程序和正在调试的进程之间使用的安全级别相同。