* docs: fix usage for 'functions' cmd
* fix: ksymaddr cmd
- refactor ksymaddr command
- introduce argparse syntax to ksymaddr command
- add warning if process can't resolve kernel symbol addresses
- fix issue when matching symbol wasn't recognized because it was
compared against the combination of symbol name plus module name
- add note to docs about needed permissions
* feat: add capability to pass multiple commands to gdb helpers as cmd
- refactor: create new CommandType for 'before', 'cmd' and 'after'
- refactor: add whitespace around "="
- refactor: extract method for adding commands to gdb subprocess command
- feat: add capability to pass multiple commands to 'cmd'
* fix: stub cmd
- feat: add -r shortform to argparse syntax
- docs: change LOCATION to address
- docs: update --retval syntax
- docs: fix line length
- tests: upgrade tests from just checking for exceptions to also check
the functionality of the stub command
* docs: update reset-cache
* fix: pattern command
- docs: update pattern command
- docs: apply markdown lints and remove typo
- feat: set n for pattern cmd to default of current_arch.ptrsize
- args: update pattern command
- remove: pattern.period gef setting
- feat: support 16bit size for struct.patch
- tests: more extensive tests
* docs: update screenshots
* refactor: please linter
* fix: correct some nitpicks
* feat: use argparse syntax for deref cmd
* docs: update deref syntax
* docs: capitalize De Bruijn
* docs: fix code block on docs/index.md
* Fixing #729 : adding a URL checker for the documentation
* Update docs-link-check.yml: Execute the URL check regardless of the branch
* [ #731 ] Fixing bad URLs found by the Actions
* [ #731 ] Bump Actions version to latest (1.0.13)
* [ #731 ] Better formatting in `docs/commands.md`
* CI: Lint: Add more linters to test files
* Fix line lengths in test files
* Fix type hints
* Use fstrings in tests
* Make tests use tuple as default iterable
* Add more lint rules and move some to 'common'
* lint: Fail on error
* Add test for printing chunks with multiple heaps
This test checks that when a non-main arena has multiple (and therefore
non-contiguous) heaps, we still print them all out.
* Fix 'before' command in multiple heaps test
The heap set-arena command doesn't work if the heap is uninitialized, so
make sure to run to the breakpoint before using it.
* Created the config file for the stalebot in `.github/stale.yml` to auto tag an inactive issue, and close it if still no activity.
* [stalebot] Added `exemptMilestones` and `exemptAssignees` directives
This check (though uncommented) appears to have been introduced to compensate for the have_fastchunks flag being moved from an arena's flags into its own field in GLIBC 2.27. The only thing that needs changing is the version number, it should be >= 2.27 rather that 2.26. In its current state, if you try to debug a program linked to a GLIBC 2.26 build without debug symbols, the arena layout is misinterpreted and heap commands will hang or give incorrect information.
Fixes the documentation and help messages for the assemble command. Furthermore the assemble command now works for all architectures (and modes, endianness) that are supported by both GDB and keystone (so not the ones that are only supported by one of them). Also this PR includes one test for each of the possible combinations of architecture, mode and endianness.
These are all now supported targets for this command:
Available architectures/modes (with endianness):
- ARM
* ARM (little, big)
* THUMB (little, big)
* ARMV8 (little, big)
* THUMBV8 (little, big)
- ARM64
* AARCH64 (little)
- MIPS
* MIPS32 (little, big)
* MIPS64 (little, big)
- PPC
* PPC32 (big)
* PPC64 (little, big)
- SPARC
* SPARC32 (little, big)
* SPARC64 (big)
- SYSTEMZ
* SYSTEMZ (little, big)
- X86
* 16 (little)
* 32 (little)
* 64 (little)
This fixes the documentation and help messages for the capstone-disassemble command. Furthermore the command was not working in use cases like emulating aarch64 inside qemu. This was due to an uncaught exception caused in gef_get_auxiliary_values when gdb's info auxv doesn't return useful results. This bug has been fixed. Also resolving of LOCATIONs has been fixed.
I also change the syntax for the location argument back to how it was before argparse: as a positional argument.
I introduced a new convenience wrapper function around gdb's parse_and_eval to specifically resolve LOCATIONs. This way other commands can rely on it without having to handle the different possible cases necessary (because e.g. gdb resolves registers different from symbols and for symbols a simple conversion to int does not work directly). This new function does not aim at replacing gef_safe_parse_and_eval at this point because too many commands currently rely on it and there might be use cases that don't resolve locations.