a³ release 24.10

Placeholder

Placeholder

Placeholder

Placeholder

Improved Difference Viewer

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_functionARM
    qk_ais2_adjust_trace_segment_runtimes_robustnessARM
  • 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.

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.

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.