* add a doc page about pwndbg mentions in the wild
* Update docs/misc/pwndbg_users.md
---------
Co-authored-by: Disconnect3d <dominik.b.czarnota@gmail.com>
* Add the rebase address for elf command.
* linting
* linting
* Add file offset and rel address in memory. Build a table for display
* Modify the display information table. Add the coloring based output
* generate docs
* cant set the flags register if the process is not running
* add some asserts to prevent people from duplicating help lines
* rewrite the contributing guide on adding a command
* assert string in correct field
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* cleanly handle parameter differences
* cleanly handle command differences
* cleanly handle function differences
* add note about supported debuggers for commands and parameters
* reduce h1 bottom margin
* make it more obvious we only support functions in gdb
* autogen docs
* fixup buddydump
* uppercase debugger name in supported debuggers message
* update docs
* Fix unnecessary run of enhancement code
* Avoid another unnecessary instruction disassembly
* Update ARM IT block tests to reflect improved behavior in standalone disassembly
* restructure development docs
* clarify that qemu-tests are actually qemu-system-tests are actually kernel tests
* finish index.md; factor out dev notes and writing tests
* cleanup 'writing tests' and loose links/anchors
* update .github files
---------
Co-authored-by: Disconnect3d <dominik.b.czarnota@gmail.com>
* fix: use @pwndbg.commands.Command instead of @pwndbg.commands.ArgparsedCommand
* fix: linting
* Minor cleanup: f-strings and replaced 'latest' links with version-specific ones
* fix type annotations for return values
* add tests for canary command on x86-64 and i386
* fix linting
* added/modified registers for kernel pwning
* added a RegisterContext class for more complex register context handling
* cleaned up register context selection and flag bits
* further cleaned up register context selection
* fixing None deref issue
* handling NoneType registers
* linting
* removed most of the extra register classes
* fully removed extra register classes in commands/context.py
* renamed var so that the linter doesn't confuse the var name with dataclass type name
* some comments on newly added classes
* fixed issues based on suggestions
* fixed issues when debug symbols are not present in x64 kernel
* added full buddy allocator debugging support and abstracted indent context
* added options for pcplist
* added dynamic arg checking and implemented __len__ for GDBValue
* added new ParsedBuddyArgs class and THBs support and improved overall handling
* handling function params using a class to cleanly pass values around such that can find free pages
* added help info
* added comments for newly added classes
* changed cmd name and added test
* added reference and linting
* added docs
* fixed typo
* fixed quotes
* supporting filter by numa node index
* actually filtering by node index
* Cache color functions until the color parameter is set
* Update pwndbg/color/theme.py
Co-authored-by: Disconnect3d <dominik.b.czarnota@gmail.com>
---------
Co-authored-by: Disconnect3d <dominik.b.czarnota@gmail.com>
* Add cache to avoid calling is_linux dozens of times
* Move variable out of loop
* Replace another usage of 'not .is_linux()' to .is_baremetal()
* Rename is_baremetal() -> is_pagefault_supported() (and invert meaning)
* Update pwndbg/aglib/memory.py
---------
Co-authored-by: Disconnect3d <dominik.b.czarnota@gmail.com>
* added/modified registers for kernel pwning
* added a RegisterContext class for more complex register context handling
* cleaned up register context selection and flag bits
* further cleaned up register context selection
* fixing None deref issue
* handling NoneType registers
* linting
* removed most of the extra register classes
* fully removed extra register classes in commands/context.py
* renamed var so that the linter doesn't confuse the var name with dataclass type name
* some comments on newly added classes
* fixed issues based on suggestions
* fixed issues when debug symbols are not present in x64 kernel
* Apply suggestions from code review
Co-authored-by: OBarronCS <55004530+OBarronCS@users.noreply.github.com>
* reduced performance overhead & added some examples for arm biflags & error handling
---------
Co-authored-by: OBarronCS <55004530+OBarronCS@users.noreply.github.com>
* Only apply TUI color workaround for gdb < 16.3
The fix was backported to GDB 16.3, it was fixed in a larger patchset in GDB 17 already.
https://lists.gnu.org/archive/html/info-gnu/2025-04/msg00014.html
* PR tui/32797 (Escape sequences to only reset foreground or background color
to default fail)
Fixes#2654
* Only test for TUI ANSI reset workaround once
* test that gdb and argparse give the same help message
* fix misc test
* rstrip outputs
* added comment explaining the down aliases
* Update pwndbg/commands/ida.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update tests/gdb-tests/tests/test_misc.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: Disconnect3d <dominik.b.czarnota@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* add support for examples and notes
* port epilog usage to 'examples'
* enforce example/note location
* generate notes, examples and epilog in the docs
* disable search highlight
* autogen docs
* cleanup a bit
#2767 adds a newline before the actual content of context sections. The layout leaves room for only one line for the legend section. The prepended newline caused the legend section to show up empty by default in TUI mode.
* - Use process network namespace instead of debugger network namespace for /proc/net/* files.
- Add tcp6 support
* - use tid
* - fix format ipv6
* fix lint
* add test + fixes
* convert little to big endian
* convert little to big endian
* Use Zig for compiling for cross architecture tests.
* comments/typos
* Check if GDB supports crossarch targets, inline _start definition in assembly, add comments
Instead of only allowing to lookup global symbols, allow reference local variables too.
This is done by iterating the local stack frame struct in IDA and comparing the name. Depending on whether IDA created an entry for the saved frame pointer in the stack frame, the stack variable offset is returned relative to the current stack or frame pointer.
This also fixes the error for invalid names in #2903
Based on https://gist.github.com/syndrowm/2968620