fuchsia.memory.heapdump.client

添加数量:15

协议

收集器

fuchsia.memory.heapdump.client/client.fidl 中定义

用于请求和检索内存配置文件的协议。

DownloadStoredSnapshot

检索存储的快照。

请求

名称类型
payload CollectorDownloadStoredSnapshotRequest

ListStoredSnapshot

检索所有可用的存储快照的列表。

请求

名称类型
payload CollectorListStoredSnapshotsRequest

实时快照

获取插桩流程中当前实时分配的快照。

请求

名称类型
payload CollectorTakeLiveSnapshotRequest

快照接收器

fuchsia.memory.heapdump.client/client.fidl 中定义

将快照作为元素流传输的协议。

批量

交付一批快照元素。

系统会反复调用该函数,直到没有任何元素剩余为止,最后用空矢量发出信号来指示数据流已结束。

请求

名称类型
batch vector<SnapshotElement>

回复

<空>

ReportError

报告错误。不会发生其他批次或错误。

请求

名称类型
error CollectorError

回复

<空>

StoredSnapshotIterator

fuchsia.memory.heapdump.client/client.fidl 中定义

用于检索 StoredSnapshot 列表的协议。

获取下一步

检索下一批 StoredSnapshots 元素。

空响应表示列表结束。

请求

<空>

回复

名称类型
payload StoredSnapshotIterator_GetNext_Result

结构

版本号

fuchsia.memory.heapdump.client/client.fidl 中定义

ELF build 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

分配线程。

BlockContents

fuchsia.memory.heapdump.client/client.fidl 中定义

已分配内存块的内容。

为了避免超出通道的最大消息大小,可以将较大的分块拆分为分块。接收器应准备好处理具有相同地址的多个 BlockContent,并通过串联其载荷来重组它们。每个块的重组大小始终与相应 Allocation 的大小字段相匹配。

序数字段类型说明
address uint64

相应内存块的地址。

contents vector<uint8>

载荷。

CollectorDownloadStoredSnapshotRequest 资源

fuchsia.memory.heapdump.client/client.fidl 中定义

序数字段类型说明
snapshot_id uint32

要下载的快照的标识符。

可以使用 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 文件的 build ID。

堆栈轨迹

fuchsia.memory.heapdump.client/client.fidl 中定义

堆栈轨迹。

为避免超出通道的消息大小上限,可以将堆栈轨迹拆分为多个区块。接收器应准备好使用相同的键处理多个 StackTrace 元素,并通过串联其程序地址来重新组装这些元素。

序数字段类型说明
stack_trace_key StackTraceKey

一个数字,用于唯一标识父快照中的此堆栈轨迹。

program_addresses vector<uint64>

与每帧堆栈对应的程序计数器。

条目按反向调用顺序列出:第一个条目引用叶帧,最后一个条目引用调用堆栈根目录下的帧。

StoredSnapshot

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 中定义

将某项操作限制为部分可用进程的过滤器。

序数变体类型说明
by_name string[32]

匹配任何具有给定 ZX_PROP_NAME 的进程。

by_koid zx/Koid

将进程与指定的 koid 相匹配。

SnapshotElement 灵活

fuchsia.memory.heapdump.client/client.fidl 中定义

属于快照的元素。

序数变体类型说明
allocation Allocation
stack_trace StackTrace
executable_region ExecutableRegion
block_contents BlockContents
thread_info ThreadInfo

StoredSnapshotIterator_GetNext_Result 严格

fuchsia.memory.heapdump.client/client.fidl 中定义

序数变体类型说明
response StoredSnapshotIterator_GetNext_Response
err CollectorError

常量

名称类型说明
MAX_BUILD_ID_LENGTH 32 uint32

别名

名称说明
StackTraceKey uint64
ThreadInfoKey uint64