<!-- Generated by zircon/scripts/update-docs-from-fidl, do not edit! -->
# zx_mtrace_control

## Summary

TODO(fxbug.dev/32938)

## Declaration

```c
#include <zircon/syscalls.h>

zx_status_t zx_mtrace_control(zx_handle_t handle,
                              uint32_t kind,
                              uint32_t action,
                              uint32_t options,
                              void* ptr,
                              size_t ptr_size);
```

## Description

To use the `zx_mtrace_control()` function, you must specify
`kernel.enable-debugging-syscalls=true` on the kernel command line. Otherwise,
the function returns **ZX_ERR_NOT_SUPPORTED**.

TODO(fxbug.dev/32938)

## Rights

*handle* must have resource kind **ZX_RSRC_KIND_ROOT**.

## Return value

TODO(fxbug.dev/32938)

## Errors

TODO(fxbug.dev/32938)

## See also

TODO(fxbug.dev/32938)

