Improved Overview
Comfortable handling of analysis groups
Improved Statistics views
Improved PDF viewer
Improved Difference Viewer
New targets
All tools for TriCore now support TC212 and TC222.
General improvements
- Workspace files are now much smaller in size.
- Stricter consistency checks for APX files generated by customer scripts.
Qualification Support Kits
- The default location for report files is now based on the QSK installation path,
and no longer on the current working directory.
- New board-specific QSKs:
- New compiler-specific QSKs:
- New test cases for ARM:
- qk_ais2_adjust_trace_segment_runtimes_function
- qk_ais2_adjust_trace_segment_runtimes_robustness
Transport layer security
- All the tools on all platforms now uniformly use OpenSSL. Please keep your OpenSSL libraries up-to-date.
- 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 TLS-encrypted connection between the client and the License
Manager that was introduced in release 23.10.
Comfortable handling of analysis groups
- The “Edit analyses” dialog now allows
re-assigning selected analyses to a different group.
- Improved performance of the “Edit analyses” dialog.
- The “Create analyses” dialog now lists available
analysis groups to select from.
- On the Overview page, analyses with additional starts
can now be folded into a single line.
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 sorting and highlighting of search results.
Symbols view
- Improved “Query contents” operation.
- The filter has been extended to allow searching for sections.
Statistics views
- Editing the columns is now persistent across multiple a³ instances.
- Generally improved stability.
- Object size statistics can now be filtered
to only show the objects reachable from the analyzed entry point.
Difference Viewer
Improved refreshing of the Results tab.
PDF viewer
The integrated PDF viewer now supports
more navigation shortcuts.
TraceVisualizer
Improved stability of the Results view.
Annotations
- Improved handling of not-analyzed code snippets with multiple continuation points.
- Improved resolution of complex call-target annotations.
- Faster evaluation of sets-of-values expressions.
- The
index_of_parameter
functor now allows
regular expressions to match the parameter name, e.g.
index_of_parameter(match(".*abc")) == 1
- TimingProfiler for generic targets supports
specifying execution times for individual instructions, e.g.
instruction 0xa70 attribute "profiler_cycles": 23;
This mode is only enabled if a global default for the number of cycles has been set,
using the global annotation:
attribute "profiler_cycles": 123;
Known issue
For code snippets annotated with evaluated as
and containing a loop or routine annotated with takes
,
under certain circumstances the takes
annotation
may be ignored by the analysis.
This issue is fixed in release 25.04.
If you cannot upgrade your software installation for any reason,
please contact support@absint.com
to receive a more detailed problem description, code examples, and known workarounds.
DWARF
- Improved support for Rust enum types.
Cache and pipeline analysis
- General improvements to the analysis speed.
- Improved heuristics for the automatic selection between
basic-block and prediction-graph path analysis.
Path analysis
Improved memory usage of the ILP solving phase.
Value analysis
- Potential NULL pointer dereferences are now classified
as info messages rather than warnings.
- Improved detection of contradictions between annotated (constant)
memory contents and analyzed code.
- The internal maximum size limit for value sets has been increased to 2048,
to allow for improved partitioning in certain corner cases.
The values in the GUI are unaffected by this change.
TimeWeaver
- Reduced memory usage.
- More robust automatic detection of trace formats.
- XML reports now include:
- Trace segment feature vectors
- Configured trace segment similarity features alongside the specified shared memory regions
- Context-sensitively exported trace segments.
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).
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
- Higher analysis precision for the
xpread
instruction.
- Improved handling of copy sections in COFF files.
- Improved automatic switch-table decoding.
C33x
- Improved handling of copy sections in COFF files.
- Improved automatic switch-table decoding.
FR81
Improved handling of flag registers.
PowerPC
- Improved loop-bound computation.
- 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.
- The invalid instruction
0xff
is considered as end of program.
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.
- Higher analysis precision for CSA accesses.