* cwatch: move example from features to source
* also mention syscall in dumpargs
* move FEATURES.md to docs/ and factor out stuff
* move integrations out
* move disasm+emu/ redo heap section
* pwndbg->Pwndbg, lldb, windbg, commands section, remove qemu-user section
* commands section
* clarify slab command
* cleanup: readme link, formatting, del extra file
* reduce some screenshot sizes
* fixup some markdown issues in improving-annotations.md
* tidy up dev notes
* Update docs/contributing/improving-annotations.md
---------
Co-authored-by: Disconnect3d <dominik.b.czarnota@gmail.com>
* 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