- Made unwinding more robust, especially around
noreturnfunctions
- Fix panic where a data slice was indexed out of range
- Fix small crash when evaluating a variable location.
- Now it will accurately report that the memory doesn't exist instead of returning an error.
- Breaking: Add range to memory region
- Fix issue where arrays and maybe some objects always looked at the first couple of data bits instead of the correct position
- Fix accidental use of std
- Updated a boatload of dependencies
- Started filtering many useless variables from the list of static variables
- This means this isn't spammed full with defmt stuff anymore
- All subcrates now use the same version
- Updated gimli to 0.28
- Updated Addr2line to 0.21
- Updated to probe-rs 0.20
- Fixed bug where the abstract origin didn't get handled
- Volatile and const types can now be traced (relevant for C)
- Update to trace 0.3.0
- Move to env-logger for better logging
- Breaking: TraceError is now non-exhaustive and has more variants
- Update to Addr2line 0.20.0
- Now works with more debug info situations. (I think a recent LLVM update might have changed some things where
DebugInfoRefs are now generated instead of theUnitRefs before)
- Breaking: Capturing no longer takes a critical section. I'm now convinced this is not necessary.
- Breaking: Update to probe-rs 0.18
- Update to probe-rs 0.18
- Update to clap 4
- Breaking: Updated to gimli 0.27.2
- Updated dependencies
- The length of the iterators for
MemoryRegionandRegisterDataalways returned the original value. Now they return how many elements are left.
- The byte iterators for
MemoryRegionandRegisterDatanow implementExactSizeIterator.
- Updated to probe-rs 0.13
- Updated to probe-rs 0.13
- Implemented th RequiresMemory location step
- Fixed an issue where objects were sometimes rendered with white text instead of the correct color
- Fixed an issue where stack unwinding would think it reached the end too soon
- Added back in newlines for variable printouts
- Can now do the RequiresEntryValue step
- Breaking: Updated to Core 0.2.0
- Added colorized output, which can be specified with the
-toption - Added the ability to capture and trace from a running device using probe-rs
- Created an adaptor for letting a probe-rs core be used as MemoryRegion
- Added functions to capture the registers via probe-rs
- Breaking: Big refactor to make the type decoding and value reading be structured instead of it all being strings
- Breaking: Tracing has been made crossplatform with an implementation for Cortex-M
- Breaking: Added new archetype:
typedef - Added reading capability for tagged unions (fancy Rust enums)
- Added color theme system for outputs
- Made it so that transparent types can be added to lessen the clutter in the trace
- Object member pointers (objects with the
DW_AT_containing_typeattribute) are now detected an not displayed by default. This hides all of the vtables. - Subroutines now display a
_instead of anUnknownerror - Strings longer than 64kb are no longer read to improve performance
- Breaking: Simplified the MemoryRegion trait and made it fallible
- Breaking: Simplified the RegisterData trait
- Breaking: DeviceMemory now takes a
'memorylifetime so that not all data has to be owned - Breaking: The FromIterator impl taking
&u8has been removed leaving only one impl that takesu8. Just pass an iterator with.copied()to it.
- Changed the function signature of the capture function. It now takes references to existing register data collections instead of returning new ones to improve ergonomics.
- Fixed the CLI where it used
show_inlined_variablesinstead ofshow_zero_sized_variables - Added a couple more tags to ignore when searching for static variables
- Static variables are now also traced
- Extra CLI option
-lfor capping how many times lines can wrap. This is useful for when tracing contains e.g. a long array type - Added
SliceMemoryRegionthat can act as a memory region, but always borrows all its data. This is useful for when the region can't be owned, but is not referenced anywhere else
- Improved the docs a tiny bit. This release is mainly done because docs.rs failed to build the crates due to an outage.
- Initial release