github pwndbg/pwndbg 2025.01.20
2025.01.20 Release

2 days ago

This release features LLDB support, improved performance, bug fixes and enhanced embedded systems experience. Pwndbg can now run on macOS (both Intel & Apple Silicon) and allows for debugging Mach-O binaries.

Thanks to everyone who made it happen, especially (for most commits) to @patryk4815, @mbrla0, @peace-maker, and @fidgetingbits!

Want to support us or buy us a coffee? See our Pwndbg sponsors page!

Also, want to split Pwndbg context displays with tmux? See jcfg's blog post!

Major changes

  • New features
    • Added LLDB support. Most of Pwndbg functionality was ported to a debugger-agnostic library (aglib) that supports both GDB and LLDB. See also "When to use GDB or LLDB" and GDB vs LLDB commands.
    • Added macOS and Mach-O support via LLDB (Intel & Apple Silicon)
      • pwndbg-gdb also works on macOS, but only for remote debugging (e.g., target remote 0:1337)
    • Added support for text user interface (TUI) in GDB (set with tui layout pwndbg or tui layout pwndbg_code)
    • Added context history. The displayed contexts are saved in history and can be re-seen with contextprev and contextnext commands
  • New commands added:
    • gdt <addr> - dumps Global Descriptor Table entries from a given address
    • strings - search memory for readable strings, like with the strings CLI utility
    • jemalloc_heap, jemalloc_extent_info, jemalloc_find_extent - inspect jemalloc heap allocator structures
    • hijack-fd <fd> <newfile> - modify the process file descriptor
    • kallsyms and klookup - added Linux kernel debugging helpers for looking up symbol tables
    • profiler {start,stop} - added a profiler command to benchmark Pwndbg performance/bottlenecks
  • Improvements
    • Improved the experience with embedded systems debugging (better vmmap detection; improved vmmap_add and vmmap_load commands)
    • The ropgadget command now dumps memory and finds gadgets in all executable regions
    • context <section[s]> now has --on|--off toggle to temporarily disable sub-sections
    • plist now supports --offset and --count to limit the linked list elements to be printed
    • Added vmmap -C <N> <filter> command to display N pages before/after the filtered one
    • Speed up syntax highlighting via pygments and Pwndbg startup time
  • Others
    • Dropped Python 3.8 / Ubuntu 20.04 / Debian 11 support
    • Lots and lots of bug fixes

Full changelog

The full changelog can be found here: 2024.08.29...2025.01.20

New Contributors

Don't miss a new pwndbg release

NewReleases is sending notifications on new releases.