* Implements kdmesg for Linux kernels 5.10+.
* Minor optimizations and fixes to kdmesg.
* Fix lint errors
* Add test_command_kdmesg() to test_commands_kernel.py to test kdmesg.
* Fix lint errors
* Add docs
* Docs
* Improved documentation
* Lint fixes
* Improve documentation
* Fix lint errors
* Add functionality for -T, --ctime argument to print time in human readable format
* Fix lint errors
* Docs update
* Add test for -T arg in kdmesg
* Fix lint errors
* Fix -T arg to reflect current time, not offset
* Fix lint errors
* Bugfix for older versions of the kernel
* Fix lint errors
* Error checks
* Fix lint errors
* Test fix
* Fix lint errors
* Implement fzf completion in lldb like GEP
* Implement fzf completion in lldb like GEP
* Implement fzf completion in lldb like GEP
* Implement fzf completion in lldb like GEP
* Implement fzf completion in lldb like GEP
* Implement fzf completion in lldb like GEP
* Implement fzf completion in lldb like GEP
* Implement fzf completion in lldb like GEP
* Implement fzf completion in lldb like GEP
* Implement fzf completion in lldb like GEP
* Implement fzf completion in lldb like GEP
* Implement fzf completion in lldb like GEP
* Implement fzf completion in lldb like GEP
* Implement fzf completion in lldb like GEP
* Implement fzf completion in lldb like GEP
* Implement fzf completion in lldb like GEP
The order of the context section windows in the pre-configured pwndbg layouts didn't match the order in which they are drawn in the CLI context output as specified by the `context-sections` config. This caused glitches while rendering the section titles.
This is a workaround for the current TUI layout and the context-sections order. If the order is changed later, it might break again.
Fixes#3045
* page walks
* Improving kernel-vmmap
* added test for kernel vmmap
* improve userland heap handling
* improve kernelland sections handling
* fixed typo
* fixed test
* adding support for info mem
* changed array to tuple based on suggestions
* removing esp fixup stacks from display
* including call stacks
* implemented pagewalk
* added pagewalk test
* improved testing / output
* added docs
* renaming
* actually adding the remamed file
* adding decoration for cpu arch
* Revert "adding decoration for cpu arch"
This reverts commit 84aa120f68.
* added arch check for pagewalk
* adding req on symbols
* supporting mem info
* refactored pagewalk helpers
* added support for older versions of qemu-x86_64
* improved pagewalk helper function signature
* improved processing of vmmap
* refactored a bit more
* refactored a bit more
* removed changes to kernel/vmmap
* adding option to not process pages
* improving support to info mem
* changed to tuple
* changed to tuple
* changed to tuple
* added aarch64 mem mapping
* improved testing
* fixing for arm64
* a bit more amending
* fixing test
* fixed edge cases
* page walks
* Improving kernel-vmmap
* added test for kernel vmmap
* improve userland heap handling
* improve kernelland sections handling
* fixed typo
* fixed test
* adding support for info mem
* changed array to tuple based on suggestions
* removing esp fixup stacks from display
* including call stacks
* implemented pagewalk
* added pagewalk test
* improved testing / output
* added docs
* renaming
* actually adding the remamed file
* adding decoration for cpu arch
* Revert "adding decoration for cpu arch"
This reverts commit 84aa120f68.
* added arch check for pagewalk
* adding req on symbols
* supporting mem info
* refactored pagewalk helpers
* added support for older versions of qemu-x86_64
* improved pagewalk helper function signature
* improved processing of vmmap
* refactored a bit more
* refactored a bit more
* removed changes to kernel/vmmap
* adding option to not process pages
* improving support to info mem
* changed to tuple
* changed to tuple
* changed to tuple
* added aarch64 mem mapping
* improved testing
* fixing for arm64
* a bit more amending
* fixing test
* fixing the issue that the script does not drop to a pdb shell when a test fails and the pdb option is specified
* allowing to manually connect to gdb
* changed to pdb
* page walks
* implemented pagewalk
* added pagewalk test
* improved testing / output
* added docs
* renaming
* actually adding the remamed file
* adding decoration for cpu arch
* Revert "adding decoration for cpu arch"
This reverts commit 84aa120f68.
* added arch check for pagewalk
* refactored pagewalk helpers
* improved pagewalk helper function signature
* refactored a bit more
* refactored a bit more
* removed changes to kernel/vmmap
* highlight pwndbg prompts in code blocks
* instant loading + thing that needs to be run on page load = pain
* better colors maybe
* new js in mkdocs
* better callback!
* change prompt color to green
* add short intro to configuration
* spruce up attachp message
* move notes and examples to appropriate sections, and assert that
* leakfind upd and add probeleak
* track-heap: report chunk size as hex
* add more commands to docs
* add comment to the profiler
* add docstrings for each top-level module
* highlight in profiler description
* fix attachp test
Large resolutions could cause the space allocated for the legend row to be too big causing it to show up with empty lines below.
Reduce the weight to 0 to make it as small as possible every time.
Fixes#3044
* pwndbg isn't an lldb plugin, mention bata24/gef, update sizes
* rephrase one readme line
* make what about... section more concise
* add a reference to original blog post
* lengthen description for dev-dump-instruction
* unbork go debugging page
* rename misc -> tutorials
* ida integration
* update context command description
* add video example to context docs
* add more clear separation in configuration docs
* proper capitalization on GDB, Pwndbg, LLDB in docs
* lint :P
* upd readme line
* fix tests and more clear grammar
* use `pwndbg` in gif instead of `gdb --quiet`
* update contributing/making-a-gif
* fix: show "x" when the condition instruction will not be taken
Fixes#3025
* Update disasm.py
* Update disasm.py
* Update disasm.py
* Fix X marker in cross-arch tests (aarch64, riscv64)
* install uv and use it to create venv
* fix lint.sh to use all necessary deps
* make the test scripts use uv
* put uv into system path
* more clear setup.sh output
* don't look for uv in venv
* update the workflows to use uv
* lowercase pwndbg in upd message
* fix coverage invocation
* more robust test invocation
* pre-sync docs build
* don't pass venv to find_uv in [gdb/lldb]init
* uv sync before lint for more robustness
* make lldb work out of the box together with gdb
* don't uninstall dependancies when syncing
* modify scripts to use uv inside venv
* update workflows
* fix lint for scripts/
* update doc verifier workflow
* let nix magic check uv.lock
* use the venv as specified from venv in scripts so it works in docker
* add uv to project deps
* fix tests venv location
* revert uv venv lookup changes
* fix kernel tests
* fix nix
* work without venv, refactor code, packagers enjoy
* fix dockerfiles
* no posix; bash is my new best friend
* dont make venv in nix
* cleaned up paths
* Update gdbinit.py
* rebase: update link and uv lock
* Update lldbinit.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update scripts/common.sh
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update gdbinit.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* fixup bad rebase (setuptools)
* don't use UV if the .skip-venv file exists
* document the PWNDBG_PLEASE_SKIP_VENV option
* fix nix devshell
* Update lldbinit.py
* extend -> append
---------
Co-authored-by: Disconnect3d <dominik.b.czarnota@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Remove {next,step}* tests from all commands tests
This optimizes CI test run; those commands are also kinda tested
elsewhere, maybe not fully, but let's leave it as it is for now...
* add total vs cumulative time for tests
* Change usage of pwndbg.aglib.memory.pvoid to optimized pwndbg.aglib.memory.read_pointer_width
* lint
* Use google style docstring, remove old pvoid function
---------
Co-authored-by: Disconnect3d <dominik.b.czarnota@gmail.com>
* gdb: suggest &main instead of main (address of symbol) in commands
* remove raise
* Revert "gdb: suggest &main instead of main (address of symbol) in commands"
This reverts commit 64e6d85c8e.
* Fix distance
* Remove todo
The `test_next_command_doesnt_freeze_crashed_binary` test incorrectly
used `REFERENCE_BINARY` instead of `CRASH_SIMPLE_BINARY` so it didn't
really checked what happens when we run next commands on a crashing binary
but instead it ran it on a working binary...
This also speeds up test execution for the
`test_next_command_doesnt_freeze_crashed_binary[stepsyscall]` test from
30s to 1s on my machine.
* 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