摘要
配置线程以定期对其堆栈进行采样并将其写入提供的 IOBuffer。提供的 IOBuffer 必须是 zx_sampler_create 之前返回的 IOBuffer。
声明
#include <zircon/syscalls.h>
zx_status_t zx_sampler_attach(zx_handle_t iobuffer,
zx_handle_t thread);
说明
配置线程,使其堆栈定期对其进行采样并写入提供的 IOBuffer。提供的 IOBuffer 必须是先前由 zx_sampler_create 返回的 IOBuffer。抽样的频率和写入策略由调用 zx_sampler_create 时使用的 zx_sampler_config_t 决定。
如果某个线程在会话启动前连接到了该线程,则系统将在该会话启动时对该线程进行采样。或者,如果在会话期间附加了线程,系统会立即开始对其进行采样。
错误
ZX_ERR_BAD_STATE
请求的要进行抽样的 thread
处于无法抽样的状态。它是 ZX_THREAD_STATE_DYING 或 ZX_THREAD_STATE_DEAD。
ZX_ERR_NOT_SUPPORTED
在内核命令行上未将 kernel.enable-debugging-syscalls
设置为 true
,或者未将 experimental_thread_sampler_enabled build 参数设置为 true。
ZX_ERR_PERMISION_DENIED
- iobuffer 不是 zx_sampler_create 返回的 IOBuffer。- thread 没有 ZX_RIGHT_READ。