* Exit with non-zero code from gdbinit.py if an exception occurs
* Update gdbinit.py
---------
Co-authored-by: Disconnect3d <dominik.b.czarnota@gmail.com>
* Move syscall number evaluation into instruction.py. This allows us to determine and display future syscalls
* Move string manipulation to color.disasm.py
* lint
* fix padding
* Fix x86 syscall
* comment
* disable debug mode
* Fix a test - we now remember previous syscalls as well
* Move x86 specific syscall logic to the x86 subclass
* lint
* @override decorator added to methods
* comments
* lint
* add test with emulation disabled for syscall annotation
* Fix x86/x86_64 edge cases with syscall register reading, and add test for emulation off for syscalls
* Update an outdated comment
* Tests depend on width of context banner
---------
Co-authored-by: Disconnect3d <dominik.b.czarnota@gmail.com>
* Added a file to mark dev installation and also modified gdbinit.py to calculate and verify the hash of poetry.lock
---------
Co-authored-by: B1N4RY-P4R45173 <kopakaajay123@gmail.com>
Co-authored-by: Disconnect3d <dominik.b.czarnota@gmail.com>
* Switch to Poetry for dependency management in setup
* Added curl dependency and removed python-pip and python3-pip
---------
Co-authored-by: B1N4RY-P4R45173 <kopakaajay123@gmail.com>
* 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>