fuchsia.memory.heapdump.client

新增時間:15

專家

收集器

定義於 fuchsia.memory.heapdump.client/client.fidl

要求及擷取記憶體設定檔的通訊協定。

DownloadStoredSnapshot

擷取已儲存的快照。

要求

名稱類型
payload CollectorDownloadStoredSnapshotRequest

ListStoredSnapshots

擷取所有可用快照的清單。

要求

名稱類型
payload CollectorListStoredSnapshotsRequest

TakeLiveSnapshot

在檢測程序中取得目前即時配置的數據匯報。

要求

名稱類型
payload CollectorTakeLiveSnapshotRequest

SnapshotReceiver

定義於 fuchsia.memory.heapdump.client/client.fidl

將快照做為元素串流傳輸的通訊協定。

批次

傳送一批快照元素。

系統會重複呼叫此函式,直到所有元素都保留完畢,最後再以空白向量表示串流結束。

要求

名稱類型
batch vector<SnapshotElement>

回應

<空白>

報告錯誤

回報錯誤。不會發生其他批次或錯誤。

要求

名稱類型
error CollectorError

回應

<空白>

儲存的 SnapshotIterator

定義於 fuchsia.memory.heapdump.client/client.fidl

擷取 StoredSnapshots 清單的通訊協定。

取得下一步

擷取下一批 StoredSnapshots 元素。

空白的回應表示清單結尾。

要求

<空白>

回應

名稱類型
payload StoredSnapshotIterator_GetNext_Result

結構

版本 ID

定義於 fuchsia.memory.heapdump.client/client.fidl

ELF 版本 ID。

欄位類型說明預設
value vector<uint8>[32] 無預設

StoredSnapshotIterator_GetNext_Response

定義於 fuchsia.memory.heapdump.client/client.fidl

欄位類型說明預設
batch vector<StoredSnapshot> 無預設

表情符號

CollectorError 彈性

類型:uint32

定義於 fuchsia.memory.heapdump.client/client.fidl

方法失敗的原因。

名稱說明
1

不支援指定的 ProcessSelector 值。

2

指定的 ProcessSelector 值不符合任何程序。

3

指定的 ProcessSelector 值符合多個程序,但要求的作業需要不重複的比對。

4

無法拍攝即時快照。

5

要求的 StoredSnapshot 不存在。

資料表

配置

定義於 fuchsia.memory.heapdump.client/client.fidl

分配的記憶體區塊。

序數欄位類型說明
address uint64

記憶體區塊的位址。

size uint64

區塊大小,以位元組為單位。

stack_trace_key StackTraceKey

配置網站的堆疊追蹤。

timestamp zx/Time

分配時間戳記。

thread_info_key ThreadInfoKey

分配執行緒。

封鎖內容

定義於 fuchsia.memory.heapdump.client/client.fidl

分配記憶體區塊的內容。

為了避免超過管道的訊息大小上限,您可以將較大的區塊分割為多個片段。接收器應準備處理具有相同位址的多個 BlockContent,並串連酬載以重新組合。每個區塊的重新組合大小一律與對應配置的大小欄位相符。

序數欄位類型說明
address uint64

對應記憶體區塊的位址。

contents vector<uint8>

酬載。

CollectorDownloadStoredSnapshotRequest 資源

定義於 fuchsia.memory.heapdump.client/client.fidl

序數欄位類型說明
snapshot_id uint32

要下載的快照的 ID。

可以使用 ListStoredSnapshots 擷取可用快照的清單。

必填。

receiver SnapshotReceiver

要求快照的元素會傳送到哪裡。

必填。

CollectorListStoredSnapshotsRequest 資源

定義於 fuchsia.memory.heapdump.client/client.fidl

序數欄位類型說明
iterator server_end<StoredSnapshotIterator>

用來擷取結果的 StoredSnapshotIterator 的 server_end。

必填。

process_selector ProcessSelector

如有快照,則只會擷取參照相符程序的快照。

CollectorTakeLiveSnapshotRequest 資源

定義於 fuchsia.memory.heapdump.client/client.fidl

序數欄位類型說明
process_selector ProcessSelector

運作的檢測程序。

必填。

receiver SnapshotReceiver

要求快照的元素會傳送到哪裡。

必填。

with_contents bool

快照是否應包含每個記憶體區塊的內容。

如未設定,系統會假設值為 false。

可執行區域

定義於 fuchsia.memory.heapdump.client/client.fidl

記憶體區域,包含從 ELF 檔案載入的程式碼。

序數欄位類型說明
address uint64

記憶體地區的位址。

size uint64

區域大小,以位元組為單位。

file_offset uint64

對應區域內第一個位元組的檔案偏移量。

build_id BuildId

ELF 檔案的版本 ID。

StackTrace

定義於 fuchsia.memory.heapdump.client/client.fidl

堆疊追蹤。

為了避免超過管道的訊息大小上限,您可以將堆疊追蹤分割成多個區塊。接收器應準備處理多個具有相同金鑰的 StackTrace 元素,並串連程式位址來重新組合這些元素。

序數欄位類型說明
stack_trace_key StackTraceKey

可在父項快照中識別此堆疊追蹤的專屬編號。

program_addresses vector<uint64>

與堆疊每個影格對應的程式計數器。

項目會按照反向呼叫順序列出:第一個項目是指分葉框架,而最後一個項目則是指呼叫堆疊根層級的頁框。

儲存的快照

定義於 fuchsia.memory.heapdump.client/client.fidl

儲存在裝置上的快照,且可供下載。

應用程式啟動的快照屬於這個類別。

序數欄位類型說明
snapshot_id uint32

可在收集器中識別此快照的專屬編號。

snapshot_name string[32]

為這張快照指定的名稱。

process_koid zx/Koid

快照所參照程序的 koid。

process_name string[32]

這個快照參照的程序名稱。

執行緒資訊

定義於 fuchsia.memory.heapdump.client/client.fidl

特定執行緒的資訊。

注意:在某些情況下,特定 koid 可能會有多個項目 (例如執行緒在不同的配置之間變更其名稱)。

序數欄位類型說明
thread_info_key ThreadInfoKey

可在父項快照中識別此項目的專屬編號。

koid zx/Koid

這個項目參照的執行緒 koid。

name string[32]

這個項目參照的執行緒名稱。

聯合國

ProcessSelector 彈性

定義於 fuchsia.memory.heapdump.client/client.fidl

使用篩選器,將作業限制於可用程序的子集。

序數Variant類型說明
by_name string[32]

比對所有與指定的 ZX_PROP_NAME 的程序。

by_koid zx/Koid

將程序與指定的 koid 進行比對。

SnapshotElement 彈性

定義於 fuchsia.memory.heapdump.client/client.fidl

屬於快照中的元素。

序數Variant類型說明
allocation Allocation
stack_trace StackTrace
executable_region ExecutableRegion
block_contents BlockContents
thread_info ThreadInfo

StoredSnapshotIterator_GetNext_Result strict

定義於 fuchsia.memory.heapdump.client/client.fidl

序數Variant類型說明
response StoredSnapshotIterator_GetNext_Response
err CollectorError

場景

名稱類型說明
MAX_BUILD_ID_LENGTH 32 uint32

別名

名稱說明
StackTraceKey uint64
ThreadInfoKey uint64