New targets
- All tools for TriCore now support TC212 and TC222.
General improvements
- The size of workspace files has been greatly reduced.
- The integrated PDF viewer now supports more navigation shortcuts.
Qualification Support Kits
- New board-specific QSKs:
- aiT for TC379 (32-bit)
- aiT for TC389 (32-bit)
- aiT for TC399 (32-bit)
- aiT for TMS320F28335 (32-bit)
- New compiler-specific QSKs:
- aiT for C28x with TI 6.2.0
- StackAnalyzer for C28x with TI 6.2.0
- New test cases:
qk_ais2_adjust_trace_segment_runtimes_function | ARM |
qk_ais2_adjust_trace_segment_runtimes_robustness | ARM |
- The default report file location is now based on the QSK installation path,
and no longer on the current working directory.
AbsInt License Manager (ALM)
When
upgrading your client from a release older than 23.10,
make sure to upgrade your License Manager as well. This is necessary
due to the new TLS-encrypted connection between the client and the License
Manager that was first introduced in
release 23.10.
Text search
In all editor views, searching by pressing Ctrl+F
now automatically pre-fills the search field with the current selection.
If nothing is selected, the word currently under the text cursor is used.
Graph search
Improved highlighting of search results.
Symbols view
- Improved “Query contents” operation.
- Extended filter to allow searching for sections.
Statistics views
Editing the columns is now persistent across multiple a³ instances.
Difference Viewer
Improved refreshing of the Results tab.
DWARF
- Improved support for Rust enum types.
Cache and pipeline analysis
- General improvements to the analysis speed.
- Improved heuristics for the automatic use of either basic block
or prediction graph level path analysis.
Path analysis
Improved memory usage of the ILP solving phase.
Value analysis
- Potential NULL pointer de-references are now classified
as info messages rather than warnings.
- Improved detection of contradictions between annotated (constant)
memory contents and analyzed code.
- The maximum size limit for value sets has been increased.
ARM
- Added a switch-table pattern that heuristically guesses the switch-table size.
- Improved handling of invalid guarded code blocks for Thumb.
- The
UDF
instruction, which raises an undefined instruction exception,
is now handled as a program end.
- Improved PC-relative switch-table decoding.
C28x
- Improved handling of copy sections in COFF files.
- Higher analysis precision for the
xpread
instruction.
TriCore
- Support for TC212 and TC222 (both AURIX 1st GEN).
- Improved automatic switch table decoding.
- Improved handling of calls to external routines for 1st and 2nd GEN AURIX.
- Higher analysis precision for the
madd.u
instruction.
Other target architectures
- C33: Improved handling of copy sections in COFF files.
- e200: Improved handling of memory serialized instructions.
- RISC-V: Added a switch-table pattern that heuristically guesses the switch-table size.
- RL78: Added support for
?C_SSWITCH_L10
switch tables.
TimeWeaver
- Reduced memory usage.
- More robust automatic detection of trace formats.
- Trace segments are now context-sensitively exported to the XML report.
If trace segment times have been imported from another trace segment,
this is reported in the new attribute
adjust_edge_id
that encodes the id of the trace graph edge (aka trace segment).
- Export configured trace segment similarity features
alongside the specified shared memory regions to the XML report.
- Export trace segment feature vectors to XML report.