* better display for canary command
https://github.com/pwndbg/pwndbg/issues/1704
* improve variable names and constants
* better grammar when we only find a single canary
* by default display only a single canary per thread
* Add resolve_renamed_struct_field()
* Add ChunkField enum
* Raise ValueError when field name not found
* Add fetch_chunk_metadata()
* Use None for include_only_fields argument
* Use None as default value for include/exclude filters in fetch_struct_as_dictionary
* Resolve C408
* Remove unused typing.Set import
* Correct use of Set in type hints
Thanks to @gsingh93 for figuring out what I'd done wrong here: capitalized "Set" must be used for compatibility with Python 3.8
* Correct use of Set in type hints
* Import Set from Typing in ptmalloc.py
* Add gdb_version to mock gdblib
* Re-enable unit tests
* Only collect unit test coverage if --cov is passed
* Source venv before running tests in github action
* Add venv path PATH in to Dockerfile
* Only check for "/ls" in `which` test
* Fix i386-32 syscall name printing
pwndbg-git from AUR shows hexadecimal constants in masm syntax
(e.g. 80h) for some reason (as if the option CS_OPT_SYNTAX_MASM was set).
This commit makes syscall name printing work regardless of hex syntax.
* riscv: Fix AssertionError on "jalr ra, ra, 0x252"
When the PC was on this instruction, the pwndbg context would not be
printed due to this AssertionError.
* riscv: Fix AssertionError on "c.jalr a5"
According to the specification, "C.JALR expands to jalr x1, 0(rs1)".
* Modify python test scripts to work from nix
* Update utils.py
* address review feedback
---------
Co-authored-by: Disconnect3d <dominik.b.czarnota@gmail.com>
* Additional type hints
Activate `vermin --eval-annotations` to catch invalid type hints for Python 3.8.
Use `typing_extensions.ParamSpec` to avoid hiding function arguments through decorators.
* Fix safe linking detection
* Fix cast of glibc_version parameter in < Python 3.10
* Use "queue.Queue[int]" for Python 3.8 compatibility
* Address review
* Add comments and address review
* Move docs dependencies into pyproject, install with poetry in GH action
* Remove old sphinx files
* Remove custom theme dir
* Hide navigation and toc on the blog page
* Remove fetch-depth from docs GH workflow
* Source venv before running mkdocs build
* Remove caching from docs GH workflow
* Remove python version in docs GH workflow
* Only look for readable address in retaddr command
* Rename stack.py to retaddr.py
* Add pwndbg.gdblib.stack.callstack and use it in retaddr
* Add callstack gdb test
* Add QEMU callstack test
* Set default devcontainer formatter to ruff
Update devcontainer.json to use charliermarsh.ruff as the default formatter.
This should bring the devcontainer environment in line with the CI-enforced formatting & linting.
* Remove black & pylint extensions from devcontainer.json
The black & pylint extensions are no longer used, ruff is now responsible for formatting and linting.
* Set source.organizeImports to "explicit"
The previous setting of true is deprecated
* Remove tool.black from pyproject.toml
* Remove tool.pylint from pyproject.toml
* Don't let ruff organize imports
Leave it to isort