* Fix "set glibc 2.31" which got broken recently
I haven't tracked when it got broken, but we were setting a tuple for a string parameter.
It did not work on 2025.02.19 but worked on 2025.01.20.
I also added a testcase for this behavior now.
* Update glibc.py
* change branch-if-(not)taken command category to breakpoint
* more descriptive onegadget text
* add check for extraneous files in docs/commands, move the break command's files
* remove example since it renders wrong on the web doc
and the example itself is :(
* delete extra docs with gen
* add pyreadline3 for windows
* fix terminal for windows
* fix disasm mmap for windows
* fix lint
* Update pwndbg/dbg/lldb/repl/readline.py
* small fix for readline
---------
Co-authored-by: Disconnect3d <dominik.b.czarnota@gmail.com>
* parameter pretty printing, improved help doc
* make var descriptions short (put it in help doc), define enumerations
* swap value and description column
* lint
* revert to ' for quoting, fix some tests
* golf the config a bit
* fix config filtering test
* lint
* make category a mandatory argument for commands
* cleanup doc generating script, add option to verify, allow handwritten edits
* regenerated docs
* lint
* add verification to ci
* add gdb to docs ci
* run verification from uv?
* run pwndbg xd
* fixup! regenerated docs
* fixup! regenerated docs
* what?
* test
* ensure consistent doc generation by fixing term width
* change marker text a bit
* index generation
* update comment on usage
* fix: adjust to `rr`'s vFile reply
`rr replay` use `"F-01,2"` to indicate a vFile error while pwndbg
detects `"F-1,"`. Patch the code to process some cases like `rr`.
* edit: add a ` ` to satisfy lint.
* aglib.file: apply to potential `"errno;attachment"`
* edit: satisfy reviewdog
* aglib.file: skip `attachment` when parsing vFile
> F result [,errno] [;attachment]
`attachment` is what we don't need, strip it before parsing result and
errno
* aglib.file: remove duplicated split
* tls: dump the tls address by default
Use a `dt tcbhead_t <tls_address>` if there is a `tcbhead_t`. If there
is not, use telescope to dump it
Refactor the tls tests and add some new ones based on the change.
* Update pwndbg/commands/tls.py
* Update pwndbg/commands/tls.py
* Update pwndbg/commands/tls.py
* Update tls.py
---------
Co-authored-by: Disconnect3d <dominik.b.czarnota@gmail.com>
* add strings.yield_in_page, refactor strings command
This commit adds a `pwndbg.aglib.strings.yield_in_page` function that yields all strings in a given memory page.
It also refactors the `pwndbg.commands.strings` command to use this feature.
* fixes
* fixes
* fix
This command shows libc version of currently debugged binary and link to its sources.
Currently it only supports glibc and shows link to raw/pure gnu.org glibc sources.
Meaning, it does not handle custom/patched glibc versions that may be there on Ubuntu etc.
In the future this command could support other libcs (like musl used by Alpine) or/and display the binary build_id and
maybe a link to libcdb.
* add comments in mkdocs, autogenerate nav
* reorganize the docs folder structure so they look good when the nav is autogenerated
* add really cool Source page
* fix edit, hide nav in setup, cleanup mkdocstrings config a bit
* fix doc CI build failure
* cleanup mkdocs.yml
* allow mkdocstrings to use linter
* remove empty files
* show parameters cleaner
according to the google style guide, we shouldn't specify types when they are in annotation, so using table which always shows types doesn't make sense
* Expose list of breakpoint locations in aglib
The list of addresses with active breakpoints can be retrieved using `Debugger.breakpoint_locations()`.
* Highlight breakpoints in `nearpc` output
Addresses in the disassembly which have an active breakpoint attached to them
are prefixed using by `b+` and highlighted in red by default.
This can be configured using the new `highlight-breakpoints`, `nearpc-breakpoint`,
and `nearpc-breakpoint-color` theme config options.
* Fix `breakpoint_locations` on lldb
* Update tests/gdb-tests/tests/test_nearpc.py
* Refactor breakpoint prefix logic
* Account for leading space before prefix again
* Move prefix coloring and preparation outside loop
---------
Co-authored-by: Disconnect3d <dominik.b.czarnota@gmail.com>
* attachp: add --exact for exact command name match
Fixes#2816. This can now be done e.g. with `attach --retry --exact ls`
To test it, run `ls -lah /*` so ls is running long enough for GDB to attach to it
* Update pwndbg/commands/attachp.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update pwndbg/commands/attachp.py
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* attachp: add default target if not provided
Fixes#2815. The `attachp` command with no arguments will now attempt to attach to a process with the same name as the
name of the binary loaded into the debugger.
* Update pwndbg/commands/attachp.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>