# Handles and kernel objects in zxdb

List all handles and [VMOs](/docs/reference/kernel_objects/vm_object.md) (some of these "Virtual
Memory Objects" can be mapped but won't have open handles) with the `handles` command.

```[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 look up more detailed information by handle value:

```
[zxdb] handle 4166674259
  Handle  4166674259
    Type  ZX_OBJ_TYPE_TIMER
    Koid  30158
  Rights  ZX_RIGHT_SIGNAL
          ZX_RIGHT_WAIT
          ZX_RIGHT_INSPECT
```

Or you can look up an object by koid. Koid lookup will only search 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.

```
[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
```
