| Crates.io | ntoseye |
| lib.rs | ntoseye |
| version | 0.1.0 |
| created_at | 2026-01-19 09:04:10.531294+00 |
| updated_at | 2026-01-19 09:04:10.531294+00 |
| description | Windows kernel debugger for Linux hosts running Windows under KVM/QEMU |
| homepage | |
| repository | https://github.com/dmaivel/ntoseye |
| max_upload_size | |
| id | 2054044 |
| size | 309,679 |
Windows kernel debugger for Linux hosts running Windows under KVM/QEMU. Essentially, WinDbg for Linux.
ntoseye currently only supports Windows 10 and 11 guests.
ntoseye needs to download symbols to initialize required offsets, it will only download symbols from Microsoft's official symbol server. All files which will be read/written to will be located in $XDG_CONFIG_HOME/ntoseye.

cargo install ntoseye
git clone https://github.com/dmaivel/ntoseye.git
cd ntoseye
cargo build --release
It is recommended that you run the following command before running ntoseye or a VM:
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
Note that you may need to run ntoseye with sudo aswell (last resort, try command above first).
To view command line arguments, run ntoseye --help. The debugger is self documented, so pressing tab will display completions and descriptions for commands, symbols, and types.
bcdedit /debug on is not required within the guest.
Many features depend on gdbstub being enabled, so its recommended that it is enabled.
Append -s -S to qemu command.
Add the following to the XML configuration:
<domain xmlns:qemu="http://libvirt.org/schemas/domain/qemu/1.0" type="kvm">
...
<qemu:commandline>
<qemu:arg value="-s"/>
<qemu:arg value="-S"/>
</qemu:commandline>
</domain>
Functionality regarding initialization of guest information was written with the help of the following sources: