# Design

- [Features](https://docs.hyperdbg.org/design/features.md)
- [VMM (Module)](https://docs.hyperdbg.org/design/features/vmm-module.md)
- [Control over NMIs](https://docs.hyperdbg.org/design/features/vmm-module/control-over-nmis.md): Different controlling fields about NMIs in Intel VT-x
- [VMX root-mode compatible message tracing](https://docs.hyperdbg.org/design/features/vmm-module/vmx-root-mode-compatible-message-tracing.md): How we transfer the buffers safely from the kernel and vmx-root to the debugger
- [Design of !epthook](https://docs.hyperdbg.org/design/features/vmm-module/design-of-epthook.md): Design of !epthook command
- [Design of !epthook2](https://docs.hyperdbg.org/design/features/vmm-module/design-of-epthook2.md): Design of !epthook2 command
- [Design of !monitor](https://docs.hyperdbg.org/design/features/vmm-module/design-of-monitor.md): Design of !monitor command
- [Design of !syscall & !sysret](https://docs.hyperdbg.org/design/features/vmm-module/design-of-syscall-and-sysret.md): Design of !syscall and !sysret command
- [Design of !exception & !interrupt](https://docs.hyperdbg.org/design/features/vmm-module/design-of-exception-and-interrupt.md): Design of !exception and !interrupt command
- [Debugger Internals](https://docs.hyperdbg.org/design/debugger-internals.md): Learn more, how we designed HyperDbg
- [Events](https://docs.hyperdbg.org/design/debugger-internals/events.md): What are events in HyperDbg & how to use them?
- [Conditions](https://docs.hyperdbg.org/design/debugger-internals/conditions.md): What is conditions in HyperDbg & how to use them?
- [Actions](https://docs.hyperdbg.org/design/debugger-internals/actions.md): What is actions in HyperDbg & how to use them?
- [Kernel Debugger](https://docs.hyperdbg.org/design/debugger-internals/kernel-debugger.md)
- [Design Perspective](https://docs.hyperdbg.org/design/debugger-internals/kernel-debugger/design-perspective.md): Description of high-level design of kernel debugger
- [Connection](https://docs.hyperdbg.org/design/debugger-internals/kernel-debugger/connection.md): The connection mechanism of HyperDbg in Debugger mode


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.hyperdbg.org/design.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
