List handles and kernel objects

handles

The handles command lists all handles and VMOs. Some of these Virtual Memory Objects can be mapped but won't have open handles with the handles command.

For example:

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:

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:

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