blob: 3bd0fa11439c6072ad5777df399cfab8b82be14b [file] [log] [blame] [view]
# List handles and kernel objects
## `handles`
The `handles` command lists all handles and [VMOs][vmo-docs]. Some of these
Virtual Memory Objects can be mapped but won't have open handles with the
`handles` command.
For example:
```none {: .devsite-terminal data-terminal-prefix="[zxdb]" }
handles
Handle Type Koid
<none> ZX_OBJ_TYPE_VMO 30040
4166674259 ZX_OBJ_TYPE_TIMER 30158
4167722515 ZX_OBJ_TYPE_PORT 30157
4169819767 ZX_OBJ_TYPE_CHANNEL 30222
```
You can use `handle` to specify a handle value to see more detailed information.
For example:
Note: This command is `handle` and not `handles`.
```none {: .devsite-terminal data-terminal-prefix="[zxdb]" }
handle 4166674259
Handle 4166674259
Type ZX_OBJ_TYPE_TIMER
Koid 30158
Rights ZX_RIGHT_SIGNAL
ZX_RIGHT_WAIT
ZX_RIGHT_INSPECT
```
You can also look up an object by koid. Koid lookup only searches the objects
in the debugged process and won't match arbitrary kernel objects owned by other
processes. Koid lookup is the only way to show detailed information for mapped
VMOs that have no open handles.
For example:
```none {: .devsite-terminal data-terminal-prefix="[zxdb]" }
handle -k 30108
Handle <none>
Type ZX_OBJ_TYPE_VMO
Koid 30108
Rights ZX_RIGHT_NONE
Name data0:blob-60
VMO size in bytes 4096
Parent koid 30105
# children 0
# mappings 1
Share count 1
Flags ZX_INFO_VMO_TYPE_PAGED
ZX_INFO_VMO_VIA_MAPPING
Committed bytes 4096
Cache policy ZX_CACHE_POLICY_CACHED
Metadata bytes 176
Committed change events 0
```
[vmo-docs]: /docs/reference/kernel_objects/vm_object.md