The previous pattern assumed addresses beginning with 0x7ffff and a limited
hex-length, which caused jemalloc heap tests to fail on some systems where
extents are mapped at addresses like 0x7ec7... with more digits.
Relax the regex to 0x[0-9a-fA-F]{6,16} so we still validate that a hex address
is printed, but support different virtual address layouts and jemalloc mappings.
* Fix plist to support pointer-sized integer fields like size_t
Resolves#3448
The plist command previously rejected fields that were not pointer types,
even if they were pointer-sized integers (like size_t, uintptr_t) used to
store addresses.
Changes:
- Accept integer types with size equal to architecture pointer size
- Handle type validation for pointer-sized integers
- Assume pointer-sized integers point to outer structure type
This allows plist to work with structs like:
struct node {
size_t next; // Previously rejected, now works
size_t prev;
};
* Strip typedefs before checking if field is pointer-sized int
size_t and similar types are TypeCode.TYPEDEF, not TypeCode.INT.
We need to call strip_typedefs() to get the underlying type
(e.g., size_t -> unsigned long) before checking the type code.
Thanks to @jackmisbach for catching this issue!
* Add test cases for plist with size_t fields
- Add test struct with size_t next pointer to linked-lists.c
- Add test_command_plist_size_t_field() to both GDB and DBG test suites
- Tests verify plist correctly handles typedef-wrapped pointer-sized integers
* Fix include placement in linked-lists.c
Move stdint.h include to top of file with other includes
* Set dereference-limit in size_t test cases
Ensure the test runs with a sufficient dereference limit to traverse all 3 nodes
* Use explicit count flag instead of dereference-limit in size_t test
Use -c 3 flag to explicitly request 3 nodes, matching the pattern used in other plist tests
* Simplify size_t test to use -f value flag
Use -f value flag to only display the value field, avoiding issues with
size_t formatting. This matches the pattern in test_command_plist_flat_field
and provides a cleaner, more focused test of the core functionality.
* Remove regs __getattr__, convert uses to read_reg(). Make .pc and .sp special properties to fetch current program counter and stack pointer
* Remove register lookup handler helper function, fixup docs
* Update comment
---------
Co-authored-by: Disconnect3d <dominik.b.czarnota@gmail.com>
* Manually propagate register values across instructions while disassembling, allowing better annotations when emulation is unavailable
* Add comment
* More comments
* Comment
* Comment fix
* Local variable change
* Print register writes in instruction debug print
* Clear register set when encountering branch with undetermined result
* Update tests
* lint
* Fix dbg tests
* Update dev docs related to reasoning about process state
* Add even even more tests
* Fix 0
* Fix 1
* Add heap tests
* Fix 0
* Match new module layout
* Fix a couple of tests
* Backport test binary changes to GDB suite
* recoverying from rm -rf
* refactored kconfig
* collapsing merge history
* cleaning up
* refactored out buddydump and slab type helpers
* improving bud and slub
* improved arch specific symbol handling
* improved handling of vmemmap and vmalloc bases when symbols do not exist
* misc
* doc
* properly naming kernel symbol files
* try except for cases where ptrace_scope is enabled
* fixing test