EpicGames / raddebugger
git clone https://github.com/EpicGames/raddebugger.git
v0.9.29-alpha · 20d ago
🔥 on GitHub Trending today
A native, user-mode, multi-process, graphical debugger.
—
stars, 24h
—
stars, 7 days
+1.1k
stars, 30 days · #278
8.6k
★ total
426
forks · 336 open issues
Star history starts 2026-10-20; the chart appears after the second daily snapshot.
LanguageC
LicenseMIT
Created2024-01-10 (2y ago)
Last pushtoday
Watchers62
OwnerOrganization
Seen on GitHub Trending
- 2026-10-20 — #3 monthly in c · +1,120 ★
Links
README excerpt
# The RAD Debugger Project _**NOTE:** This README does not document usage instructions and tips for the debugger itself, and is intended as a technical overview of the project. The debugger's README, which includes usage instructions and tips, can be found packaged along with debugger releases, or within the `build` folder after a local copy has been built. You can find pre-built release binaries here._ The RAD Debugger is a native, user-mode, multi-process, graphical debugger. It currently only supports local-machine x64 debugging on both Windows and Linux (although Linux support is still very early). We plan to expand support to other architectures, and to implement remote and multi-machine debugging. The debugger is currently in *ALPHA*. In order to get the debugger bullet-proof, it'd greatly help out if you submitted the issues you find here, along with any information you can gather, like dump files (along with the build you used), instructions to reproduce, test executables, and so on. In addition to the debugger, we aim to further improve the toolchain with two additional related technologies: **(1)** the RAD Debug Info (RDI) format, and **(2)** the RAD Linker. ## The RAD Debug Info (RDI) Format The RAD Debug Info (RDI) format is our custom debug information format, which the debugger parses and uses, rather than the debug information natively produced by toolchains, like PDB or DWARF. To work with these existing toolchains, we convert PDB and DWARF to the RDI format on-demand. The RDI format is currently specified in code, in the files within the `src/lib_rdi` folder. In `rdi.h` and `rdi.c`, the types and functions which define the format itself are specified. In `rdi_parse.h` and `rdi_parse.c`, helpers for parsing the format are included. We also have an in-progress library for constructing and serializing RDI data, located within the `src/lib_rdi_make` folder. Our `radbin` utility (accessible through the debugger too, via the `--bin` command line argument) is capable of converting native debug information formats to RDI, and of producing textual dumps of contents stored within RDI files. ## The RAD Linker The RAD Linker is a new performance linker for generating x64 PE/COFF binaries. It is designed to be very fast when creating gigantic executables. It generates standard PDB files for debugging, but it can also (optionally) natively create RAD Debug Info too, which is useful both to eliminate on-demand conversion time when debugging, but also for huge executables that otherwise create broken PDBs that overflow internal 32-bit tables. The RAD Linker is primarily optimized to handle huge linking projects. In our test cases (where debug info is multiple gigabytes), we see 50% faster link times. The command line syntax is fully compatible with MSVC; you can get a full list of implemented switches from `/help`. Our current designed-for use case for the linker is to help with the compile-debug c