协议
AgentIterator
在 fuchsia.debugger/debug_agent.fidl 中定义
GetNext
请求
<空>
响应
名称 | 类型 |
---|---|
agents |
vector<Agent>
|
AttachedProcessIterator
在 fuchsia.debugger/debug_agent.fidl 中定义
GetNext
请求
<空>
响应
名称 | 类型 |
---|---|
process_names |
vector<string>
|
DebugAgent
在 fuchsia.debugger/debug_agent.fidl 中定义
AttachTo
使用给定的过滤器将 附加到任何现有或后续创建 组件。此方法将返回 。所有关联的进程都会 在此代理销毁后分离。
|过滤|检查其有效性,并显示相应的错误 返回。如果过滤器无效,则不会添加附件。
|匹配数|将包含所找到的匹配项的数量 如果没有错误,则会立即将过滤器安装完毕, 直接数量(如果 指定选项时)该组件的相应作业。请注意, 过滤器可以安装在实际解析任何组件之前 和 匹配,因此该数字可能为 0。此返回值可安全地 已忽略。
无效的过滤条件会返回错误,请参阅上方的“过滤条件”可详细了解 如何构建过滤器。
请求
名称 | 类型 |
---|---|
pattern |
string
|
type |
FilterType
|
options |
FilterOptions
|
响应
名称 | 类型 |
---|---|
payload |
DebugAgent_AttachTo_Result
|
连接
向 DebugAgent 提供一个用于将其连接到调试程序的套接字。这个 如果已存在连接,则返回 ZX_ERR_ALREADY_BOUND。时间 套接字关闭后,DebugAgent 将退出。
请求
名称 | 类型 |
---|---|
socket |
handle<socket>
|
响应
名称 | 类型 |
---|---|
payload |
DebugAgent_Connect_Result
|
GetAttachedProcesses
迭代此代理连接到的所有进程。请注意,这是 这与已安装的过滤器集不同,而是 个匹配,但后来成功附加了过滤器的过滤器。
请求
名称 | 类型 |
---|---|
iterator |
server_end<AttachedProcessIterator>
|
GetMinidumps
收集所有附加进程的小型转储。|options|可能包含 此过滤器可以减少 迭代器。
请求
名称 | 类型 |
---|---|
options |
MinidumpOptions
|
iterator |
server_end<MinidumpIterator>
|
响应
名称 | 类型 |
---|---|
payload |
DebugAgent_GetMinidumps_Result
|
GetProcessInfo
迭代器的指定 server_end 将遍历所有线程, 所有附加进程。options 参数可能会传递给过滤器 并表达对应该如何改进 返回的值。如果是 DebugAgent,建议添加过滤条件 会关联到大量进程请注意,此过滤条件 不会导致附加任何新进程,并且该进程在 该方法会返回什么。这纯粹是为了缩小迭代器的边界。 在信息捕获期间,线程将挂起, 可能被其他系统进程中断的问题,请参阅 |ProcessInfoIterator|示例。
请求
名称 | 类型 |
---|---|
options |
GetProcessInfoOptions
|
iterator |
server_end<ProcessInfoIterator>
|
响应
名称 | 类型 |
---|---|
payload |
DebugAgent_GetProcessInfo_Result
|
OnFatalException
向客户端报告异常。如果没有连接 debug_ipc 客户端,则 异常将被立即释放,这可能会导致处理 崩溃。
响应
名称 | 类型 |
---|---|
payload |
DebugAgentOnFatalExceptionRequest
|
启动器
在 fuchsia.debugger/debug_agent.fidl 中定义
GetAgents
针对所有 DebugAgent 实例的迭代器。
请求
名称 | 类型 |
---|---|
iterator |
server_end<AgentIterator>
|
发布
启动一个新的 DebugAgent 实例来监听 |agent|。DebugAgent 将在关闭此渠道的相应 client_end 后退出。 在调试会话完成之前,客户端不得关闭通道 已完成。
请求
名称 | 类型 |
---|---|
agent |
server_end<DebugAgent>
|
响应
名称 | 类型 |
---|---|
payload |
Launcher_Launch_Result
|
MinidumpIterator
在 fuchsia.debugger/debug_agent.fidl 中定义
收集并返回一组进程的小型转储的迭代器。一个 如果没有更多进程,系统将返回空的 VMO。
GetNext
请求
<空>
响应
名称 | 类型 |
---|---|
payload |
MinidumpIterator_GetNext_Result
|
ProcessInfoIterator
在 fuchsia.debugger/debug_agent.fidl 中定义
从所有附加进程的所有线程中收集详细信息。确切的 通过迭代器生成的详细信息可通过 ThreadDetailsInterest 传递给 |GetProcessInfo|。迭代器将生成一个 所有附加进程后显示空白矢量”已经过迭代。时间是 如果没有为该迭代器提供进程,则会发生此错误, 传递到 |GetProcessInfo| 的过滤器的限制过于严格或者 DebugAgent 为 没有附加任何东西
这种迭代本质上很糟糕,DebugAgent 无法阻止 其他系统实体会导致某个进程或线程消失, 因此迭代器有可能返回错误 当这些线程或进程被销毁时触发。这些并不严重 但可能会在一次迭代中多次发生。
以以下进程结构为例,假设连接了 DebugAgent 至所有内容:
pr: "process-1"1,234,000 t:“pr1234-t1”1 次 t:“pr1234-t2”2 次 pr: "process-2"2,345,000 t:“pr2345-t1”3 次
如果为“process-1”在“pr1234-t1”后终止但 “pr1234-t2”下个函数都会返回 THREAD_GONE 错误 |GetNext|调用。致电 |GetNext|将产生“pr2345-t1”。
GetNext
收集有关下一个附加线程的信息。没有任何 进程顺序保证,但是来自给定进程的所有线程 在另一个进程的线程之前进行迭代。
请求
<空>
响应
名称 | 类型 |
---|---|
payload |
ProcessInfoIterator_GetNext_Result
|
结构体
代理资源
在 fuchsia.debugger/debug_agent.fidl 中定义
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
name |
fuchsia.component/child_name
|
无默认设置 | |
client_end |
DebugAgent
|
无默认设置 |
DebugAgent_AttachTo_Response
在 fuchsia.debugger/debug_agent.fidl 中定义
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
num_matches |
uint32
|
无默认设置 |
DebugAgent_Connect_Response
在 fuchsia.debugger/debug_agent.fidl 中定义
<空>
DebugAgent_GetMinidumps_Response
在 fuchsia.debugger/debug_agent.fidl 中定义
<空>
DebugAgent_GetProcessInfo_Response
在 fuchsia.debugger/debug_agent.fidl 中定义
<空>
过滤
在 fuchsia.debugger/debug_agent.fidl 中定义
一个过滤器,将应用于当前和 。与指定模式和类型匹配的任何组件或进程 之后,客户端便可查询 计划。有效的过滤条件将始终包含非空模式字符串, 以及一个用于识别模式比较项的 FilterType。其他 可以通过 FilterOptions 指定选项。
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
pattern |
string
|
要与指定 |type| 匹配的字符串模式。空 将导致 NO_PATTERN 错误。 |
无默认设置 |
type |
FilterType
|
如何解读 |pattern|。请参阅 FilterType。 |
无默认设置 |
options |
FilterOptions
|
此过滤器的其他选项。请参阅 FilterOptions。 |
无默认设置 |
Launcher_Launch_Response
在 fuchsia.debugger/debug_agent.fidl 中定义
<空>
MinidumpIterator_GetNext_Response 资源
在 fuchsia.debugger/debug_agent.fidl 中定义
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
minidump |
handle<vmo>
|
无默认设置 |
ProcessInfo
在 fuchsia.debugger/debug_agent.fidl 中定义
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
process |
zx/Koid
|
无默认设置 | |
moniker |
string[4096]
|
无默认设置 | |
thread |
zx/Koid
|
在 |details| 中生成信息的线程的 koid。 |
无默认设置 |
details |
ThreadDetails
|
有关使用 |koid| 的线程的详细信息,如 ThreadDetailsInterest 提供给 |GetProcessInfo|。 |
无默认设置 |
ProcessInfoIterator_GetNext_Response
在 fuchsia.debugger/debug_agent.fidl 中定义
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
info |
vector<ProcessInfo>
|
无默认设置 |
精英
FilterError 柔性环境
类型:uint32
在 fuchsia.debugger/debug_agent.fidl 中定义
名称 | 值 | 说明 |
---|---|---|
NO_PATTERN |
1 |
表示过滤条件中未提供任何模式。 |
UNKNOWN_TYPE |
2 |
对于此代理,FilterType 未指定或因其他原因属于未知类型。 |
FilterType 柔性
类型:uint8
在 fuchsia.debugger/debug_agent.fidl 中定义
名称 | 值 | 说明 |
---|---|---|
网址 |
0 |
与组件的网址执行完全匹配,无哈希值。 例如模式 fuchsia-pkg://fuchsia.com/package#meta/component.cm 将 匹配 fuchsia-pkg://fuchsia.com/package?hash=1234abcd#meta/component.cm。 |
蒙尼克尔 |
1 |
对组件的完整名称执行完全匹配。 |
MONIKER_PREFIX |
2 |
匹配将模式作为前缀的任何组件名称。 |
MONIKER_SUFFIX |
3 |
匹配将模式作为后缀的任何组件名称。 |
MinidumpError 柔性
类型:uint32
在 fuchsia.debugger/debug_agent.fidl 中定义
名称 | 值 | 说明 |
---|---|---|
NO_PROCESSES |
1 |
未向迭代器返回任何进程。这可能意味着, 提供的过滤器与任何附加进程都不匹配,或 DebugAgent 为 未附加到任何进程。 |
INTERNAL_ERROR |
2 |
生成迷你转储文件时出错。这些错误是不透明的 调试代理。 |
ProcessInfoError 柔性环境
类型:uint32
在 fuchsia.debugger/debug_agent.fidl 中定义
名称 | 值 | 说明 |
---|---|---|
NO_PROCESSES |
1 |
没有可迭代的附加进程。 |
PROCESS_GONE |
2 |
进程已终止,导致迭代器无效。 |
THREAD_GONE |
3 |
一个进程的线程发生了变化,导致迭代器无效。 |
表格
DebugAgentOnFatalExceptionRequest
在 fuchsia.debugger/debug_agent.fidl 中定义
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
thread |
zx/Koid
|
错误线程的 koid。 |
2 |
backtrace |
string
|
来自故障线程的堆栈轨迹(采用符号化程序标记格式)。 |
FilterOptions
在 fuchsia.debugger/debug_agent.fidl 中定义
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
recursive |
bool
|
是否同时匹配匹配中的所有子组件 组件的领域。如果值为 true,则匹配组件的完整名称将 将被假定为 Realm 的根,并且所有子组件 才能在此领域内发布 |
GetProcessInfoOptions
在 fuchsia.debugger/debug_agent.fidl 中定义
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
filter |
Filter
|
一个过滤器,用于减少迭代进程的数量 结束。此操作不会安装任何新的过滤器,也不会产生新的 要附加的进程相反,此过滤条件将应用于 已附加的进程,如果有很多节点, 个进程当前挂接的进程。 |
2 |
interest |
ThreadDetailsInterest
|
客户应指定他们希望获得的数据 从这里指定迭代器。任何未指定的字段将假定为 false。如需了解可能数据的说明,请参阅 ThreadDetailsInterest。 |
MinidumpOptions
在 fuchsia.debugger/debug_agent.fidl 中定义
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
filter |
Filter
|
此操作不会安装任何新过滤器,也不会导致新进程 进行附加。相反,此过滤条件将应用于已附加 过程。 |
ThreadDetails
在 fuchsia.debugger/debug_agent.fidl 中定义
特定线程的详细信息。将按照 通过以下内容创建 ProcessInfoIterator 时提供的 ThreadDetailsInterest |GetProcessInfo|。
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
backtrace |
string
|
来自当前线程的堆栈轨迹(采用符号化程序标记格式)。 |
ThreadDetailsInterest
在 fuchsia.debugger/debug_agent.fidl 中定义
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
backtrace |
bool
|
以符号化程序标记格式为每个线程生成回溯。 如果未指定,则系统不会在 ProcessInfoIterator 生成的 ThreadDetails。 |
联合体
DebugAgent_AttachTo_Result 严格
在 fuchsia.debugger/debug_agent.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
DebugAgent_AttachTo_Response
|
|
2 |
err |
FilterError
|
|
3 |
framework_err |
internal
|
DebugAgent_Connect_Result strict
在 fuchsia.debugger/debug_agent.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
DebugAgent_Connect_Response
|
|
2 |
err |
zx/Status
|
|
3 |
framework_err |
internal
|
DebugAgent_GetMinidumps_Result 严格
在 fuchsia.debugger/debug_agent.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
DebugAgent_GetMinidumps_Response
|
|
2 |
err |
FilterError
|
|
3 |
framework_err |
internal
|
DebugAgent_GetProcessInfo_Result 严格
在 fuchsia.debugger/debug_agent.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
DebugAgent_GetProcessInfo_Response
|
|
2 |
err |
FilterError
|
|
3 |
framework_err |
internal
|
Launcher_Launch_Result 严格
在 fuchsia.debugger/debug_agent.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Launcher_Launch_Response
|
|
2 |
err |
zx/Status
|
|
3 |
framework_err |
internal
|
MinidumpIterator_GetNext_Result 是严格的 资源
在 fuchsia.debugger/debug_agent.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
MinidumpIterator_GetNext_Response
|
|
2 |
err |
MinidumpError
|
ProcessInfoIterator_GetNext_Result 严格
在 fuchsia.debugger/debug_agent.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
ProcessInfoIterator_GetNext_Response
|
|
2 |
err |
ProcessInfoError
|