摘要
設定執行緒,讓其堆疊定期取樣並寫入提供的 IOBuffer。提供的 IOBuffer 必須是先前由 zx_sampler_create 傳回的值。
宣告
#include <zircon/syscalls.h>
zx_status_t zx_sampler_attach(zx_handle_t iobuffer,
zx_handle_t thread);
說明
設定執行緒,讓其堆疊定期取樣並寫入提供的 IOBuffer。提供的 IOBuffer 必須是先前由 zx_sampler_create 傳回的一個。取樣的頻率和寫入策略取決於呼叫 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
,或 experiment_thread_sampler_enabled 建構參數未設為 true。
ZX_ERR_PERMISION_DENIED
- iobuffer 並非 zx_sampler_create 傳回的 IOBuffer。- thread 沒有 ZX_RIGHT_READ。