| # 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 |