mirror of https://github.com/pwndbg/pwndbg.git
gh-pages
dev
revert-3441-remove-regs-getattr
version-add-os-name
disable-go-dumping-tests
revert-3087-ng-scaffold
revert-3020-kernel-vmmap
bump-version
2025.10.20
2025.10.10
2025.04.18
2025.01.20
2018.07.29
2017.09.26
2017.02.01
2016.09.22
2016.09.12
2019.01.25
2019.12.09
2020.07.23
2021.06.22
2022.01.05
2022.08.30
2022.12.19
2023.03.19
2023.07.17
2023.07.17-pkgs
2024.02.14
2024.08.29
2025.02.19
2025.04.13
2025.05.30
debian10-final
ubuntu18.04-final
${ noResults }
3 Commits (a534af1c283d445b017183c2c4b8d5b143eff990)
| Author | SHA1 | Message | Date |
|---|---|---|---|
|
|
a534af1c28
|
Port a lot of tests to aglib (#2519)
* nix: proper use of `version` in jemalloc * tests: remove gdblib from tests where can * workflows: add check build pwndbg-lldb * tests: fix test_commands[jemalloc_heap] * tests: remove unused JEMALLOC_PATH * nix: fix jemalloc-static * tests: fix failing test_commands[bugreport] |
1 year ago |
|
|
f7bb9b59a8
|
Solving issue #2485 (#2495)
* splitting tests passed and skipped variable into two, solving issue #2485 * Fixing bugs in PR #2495 * jemalloc.py: remove unused Arena class (#2492) * Fixes canary command when no canaries are there (#2496) Fixes the following bug uncovered by our test_commands[canary] test suite: ``` (.venv) root@pwndbg:~/pwndbg# RUN_FLAKY=1 ./tests.sh 'test_commands' --pdb Will run tests in serial and with Python debugger ZIGPATH set to /root/pwndbg/.zig make: Nothing to be done for 'all'. pwndbg: loaded 173 pwndbg commands and 47 shell commands. Type pwndbg [--shell | --all] [filter] for a list. pwndbg: created $rebase, $base, $bn_sym, $bn_var, $bn_eval, $ida GDB functions (can be used with print/break) Launching pytest with args: ['/root/pwndbg/tests/gdb-tests/tests/test_commands.py::test_commands[canary]', '-vvv', '-s', '--showlocals', '--color=yes', '--pdb'] ======================================================================== test session starts ======================================================================== platform linux -- Python 3.11.6, pytest-8.0.2, pluggy-1.5.0 -- /usr/bin/python cachedir: .pytest_cache rootdir: /root/pwndbg/tests plugins: cov-4.1.0 collected 1 item gdb-tests/tests/test_commands.py::test_commands[canary] Running command canary This GDB supports auto-downloading debuginfo from the following URLs: <https://debuginfod.ubuntu.com> Debuginfod has been disabled. To make this setting permanent, add 'set debuginfod enabled off' to .gdbinit. Program stopped. 0x00007ffff7fe4b40 in _start () from /lib64/ld-linux-x86-64.so.2 AT_RANDOM = 0x7fffffffe3d9 # points to (not masked) global canary value Canary = 0x37492280ae2b3000 (may be incorrect on != glibc) No canaries found. Traceback (most recent call last): File "/root/pwndbg/pwndbg/commands/__init__.py", line 187, in __call__ return self.function(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/root/pwndbg/pwndbg/commands/__init__.py", line 378, in _OnlyWhenRunning return function(*a, **kw) ^^^^^^^^^^^^^^^^^^ File "/root/pwndbg/pwndbg/commands/canary.py", line 91, in canary if some_canaries_not_shown is True: ^^^^^^^^^^^^^^^^^^^^^^^ UnboundLocalError: cannot access local variable 'some_canaries_not_shown' where it is not associated with a value During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/root/pwndbg/pwndbg/dbg/gdb.py", line 871, in invoke self.handler(self.debugger, args, from_tty) File "/root/pwndbg/pwndbg/commands/__init__.py", line 105, in _handler self.invoke(arguments, is_interactive) File "/root/pwndbg/pwndbg/commands/__init__.py", line 153, in invoke self(*args, **kwargs) File "/root/pwndbg/pwndbg/commands/__init__.py", line 192, in __call__ pwndbg.exception.handle(self.function.__name__) File "/root/pwndbg/pwndbg/exception.py", line 106, in handle raise e File "/root/pwndbg/pwndbg/commands/__init__.py", line 187, in __call__ return self.function(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/root/pwndbg/pwndbg/commands/__init__.py", line 378, in _OnlyWhenRunning return function(*a, **kw) ^^^^^^^^^^^^^^^^^^ File "/root/pwndbg/pwndbg/commands/canary.py", line 91, in canary if some_canaries_not_shown is True: ^^^^^^^^^^^^^^^^^^^^^^^ UnboundLocalError: cannot access local variable 'some_canaries_not_shown' where it is not associated with a value ``` * Fix gdt command: require address argument (#2497) Before this commit, the `gdt` command incorrectly did not require the `address` argument, while it was required. Because of that, the command crashed like this: ``` pwndbg> gdt 'gdt': Decode X86-64 GDT entries at address See also: * https://wiki.osdev.org/Global_Descriptor_Table * https://wiki.osdev.org/GDT_Tutorial Note: In 64-bit mode, the Base and Limit values are ignored, each descriptor covers the entire linear address space regardless of what they are set to. Exception occurred: gdt: int() argument must be a string, a bytes-like object or a real number, not 'NoneType' (<class 'TypeError'>) For more info invoke `set exception-verbose on` and rerun the command or debug it by yourself with `set exception-debugger on` ``` * Add better handling for exceptions originating in execution controllers under LLDB (#2488) * Fix try_free command: make addr argument required (#2499) Fixes the following problem: ``` pwndbg> try_free TypeError: int() argument must be a string, a bytes-like object or a real number, not 'NoneType' > /root/pwndbg/pwndbg/commands/heap.py(1195)try_free() 1194 def try_free(addr: str | int) -> None: -> 1195 addr = int(addr) 1196 ``` * Fix ctxp command (#2498) * Fix ctxp and ctxn commands Before this commit the `ctxp` could fail with: ``` Launching pytest with args: ['/root/pwndbg/tests/gdb-tests/tests/test_commands.py::test_commands[ctxp]', '-vvv', '-s', '--showlocals', '--color=yes', '--pdb'] ======================================================================== test session starts ======================================================================== platform linux -- Python 3.11.6, pytest-8.0.2, pluggy-1.5.0 -- /usr/bin/python cachedir: .pytest_cache rootdir: /root/pwndbg/tests plugins: cov-4.1.0 collected 1 item gdb-tests/tests/test_commands.py::test_commands[ctxp] Running command ctxp This GDB supports auto-downloading debuginfo from the following URLs: <https://debuginfod.ubuntu.com> Debuginfod has been disabled. To make this setting permanent, add 'set debuginfod enabled off' to .gdbinit. Program stopped. 0x00007ffff7fe4b40 in _start () from /lib64/ld-linux-x86-64.so.2 Traceback (most recent call last): File "/root/pwndbg/pwndbg/commands/__init__.py", line 187, in __call__ return self.function(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/root/pwndbg/pwndbg/commands/context.py", line 363, in contextprev longest_history = max(len(h) for h in context_history.values()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ValueError: max() arg is an empty sequence During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/root/pwndbg/pwndbg/dbg/gdb.py", line 871, in invoke self.handler(self.debugger, args, from_tty) File "/root/pwndbg/pwndbg/commands/__init__.py", line 105, in _handler self.invoke(arguments, is_interactive) File "/root/pwndbg/pwndbg/commands/__init__.py", line 153, in invoke self(*args, **kwargs) File "/root/pwndbg/pwndbg/commands/__init__.py", line 192, in __call__ pwndbg.exception.handle(self.function.__name__) File "/root/pwndbg/pwndbg/exception.py", line 106, in handle raise e File "/root/pwndbg/pwndbg/commands/__init__.py", line 187, in __call__ return self.function(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/root/pwndbg/pwndbg/commands/context.py", line 363, in contextprev longest_history = max(len(h) for h in context_history.values()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ValueError: max() arg is an empty sequence XFAIL (flaky test) ``` * fix --------- Co-authored-by: Disconnect3d <dominik.b.czarnota@gmail.com> Co-authored-by: Matt. <dark.ryu.550@gmail.com> |
1 year ago |
|
|
1438fc0616
|
Qemu user test structure (#2275)
* Initial version of qemu-user tests * Refactor testing files to reduce file duplication, introduce qemu-user-tests * lint and edit github actions workflow file. Move old qemu-user tests to seperate directory * Add iproute2 so ss command is available * test ubuntu 24 * funkiness with current working directory... * Further remote old test_qemu.sh and integrate into a Pytest fixture * lint * Disable ASLR, add test for aarch64 jumps * Use Popen.kill() function to make sure it closes. Co-authored-by: Disconnect3d <dominik.b.czarnota@gmail.com> * qemu.kill() on the other fixture as well * comment * comment * lint * system test path stuff * remove old try-catch block * revert * revert path change * Use os._exit to pass return code, and move qemu-user tests above system tests because they run significantly faster * lint * Flush stdout before os._exit * Comment out flaky check for the address of main in old qemu tests * rename qemu-user to cross-arch * rename qemu-user to cross-arch and hotfix to not run pytest when cross-arch is used * remove todo comment * another comment * Test pwndbg.gdblib.symbol.address is not None and revert setarch -R * Revert os.exit change * Revert os.exit change * Revert os.exit change * readd os.exit in new exit places * lint * rebase * delete file introduced in rebase * break up tests into 3 files to invoke separately. Update GitHub workflow, remove code duplication in existing test * code coverage * fix code coverage * lint * test difference between Ubuntu 22 and 24 in Kernel tests * lint --------- Co-authored-by: Disconnect3d <dominik.b.czarnota@gmail.com> |
1 year ago |