diff --git a/CHANGELOG.md b/CHANGELOG.md index 6c69c219..f91d35ab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,34 @@ # v0.9.29-alpha ## Debugger Changes +- **The debugger now has preliminary support for native Linux x64 debugging.** + It's still *very early*, and there is surely a lot to fix, so please expect a + less stable experience than on Windows! But it is now finally in a state that + we feel it'd be helpful for people to try it, so that we can begin + battle-testing the debugger on Linux also. Here are a list of known issues + and caveats: + - We are not releasing any binaries for Linux yet, so we've provided + instructions for locally building the debugger in the codebase's + `README.md`. + - We do not support debugging of code which uses `fork` and `vfork` yet. + - When computing locations of thread-local storage, we currently assume that + the debuggee uses the same libc version as the debugger. + - We do not currently correctly unwind when the `.eh_frame_hdr` section is + missing. This is normally there by default, but this may explain some + broken callstacks you encounter. It can be enabled by passing the + `--eh-frame-hdr` flag to the linker, if it's not enabled by default. + - Bitfield type info is not yet supported correctly. + - In some cases, our type deduplication (when converting from DWARF to RDI) + is not working correctly. (#959) + - Sometimes, a keyboard combination will incorrectly send text events. (#954) +- The debugger now has preliminary support for loading Minidump (`.dmp`) files. + They can be opened with the `Open Crash Dump` command. +- Added a breakpoint setting which causes breakpoints to only break if they're + hit by the currently selected thread, if there is a selected thread. If there + isn't a selected thread yet, all threads will still cause a break. +- Added a setting, `Lock New Breakpoints To Selected Thread`, which turns on + the aforementioned breakpoint setting by default on all newly placed + breakpoints. - Reintroduced `Browse` buttons for cells that edit file paths, which spawn a file picker, to more conveniently choose paths. - The debugger now tags watch expressions with the selected project, which @@ -10,6 +38,27 @@ visualized) in source and disassembly views is now clickable, as a fastpath for `Run To Line`. - The position of the destination of a `Run To Line` command is now visualized. +- The debugger now better visualizes the status of loading debug info in the + `Modules` tab. +- The debugger's IPC system is now built on sockets rather than shared memory + ring buffers. This is mostly an implementation detail, but it has introduced + some noteworthy changes. First, communication with instances of the graphical + debugger is now done through network ports, rather than through process IDs. + By default, this port is `7423`, but it can be changed per-instance by + passing the `--ipc_port` command line option, e.g. `raddbg --ipc_port=1234`. + Furthermore, this also means that IPC commands can be sent over the network. + This is unlikely to be especially helpful right now. But to do this, you can + pass an IP address and port when sending a command, e.g.: + `raddbg --ipc --ipc_addr=123.45.67.89:1234`. +- The debugger now allows using a single font for the entire interface, if you + want the UI elements and code to be drawn in a more uniform style. This is + available through the `Use Alternative Font For UI` setting. +- Fixed a performance issue when computing very large call stacks with many + very small frames (fixes missing call stacks in some stack overflow cases). + (#963) +- Fixed `raddbg.com` adding the debugger as a command line target to itself + incorrectly. (#946) +- Fixed many other minor bugs and instabilities. # v0.9.28-alpha