摘要
朗讀可用的樣本。
宣告
#include <zircon/syscalls.h>
zx_status_t zx_sampler_read(zx_handle_t sampler,
void* data,
size_t data_size,
size_t* actual);
說明
讀取最近一次取樣工作階段期間寫入的資料。提供的緩衝區必須夠大,才能讀取所有可用資料。呼叫時將 data 設為 nullptr,即可查詢這個大小。系統會將所需最小大小寫入實際大小。
成功讀取時,會傳回 ZX_OK,並將 actual 設為實際讀取的位元組數。
此外,如果傳回 ZX_ERR 傳回碼,可能仍會發生部分讀取作業,而寫入 data 的位元組數會傳回至 actual。
錯誤
ZX_ERR_NOT_SUPPORTED kernel.enable-debugging-syscalls 未在核心指令列中設為 true,或 experimental_thread_sampler_enabled 建構參數未設為 true。
ZX_ERR_PERMISION_DENIED sampler 不是 zx_sampler_create 傳回的取樣器。
ZX_ERR_BAD_STATE取樣器目前處於有效狀態