a³ release 20.10

a³ screenshot

Improved workspaces

  • Workspaces can now be saved even while analyses are still running, so you can store partial results of the already finished ones.
  • The extension .apz is now used for workspaces to distinguish them from normal .apx project files.
  • Workspace APZ files are movable, i.e. the file names within a workspace are now relative to the location of the workspace as a whole.

a³ screenshot

Improved DWARF handling

  • The DWARF view has been fully merged into the Symbols view.
  • The search limits in the new Symbols view has been increased to make DWARF search results available earlier.
  • Iterative decoding now uses the DWARF debug information to improve automatic decoding of C++ virtual member function calls.
  • Function-local static variables are no longer considered for extracting constant memory regions from DWARF.
  • The option “Setup” → “Source files” → “Strip compilation path” to strip the compilation path mentioned in the DWARF debug information is now enabled by default.
  • Improved reading of DWARFv2 and C++ DWARF debug information.
  • Improved handling of source-code information from DWARF.
  • Improved handling of DWARFv2 generated by the GHS compiler.

a³ screenshot

C++ virtual member functions

C++ virtual member functions can now be resolved automatically by the iterative decoding. Using DWARF debug information, the value analysis keeps track of potential class types to allow the decoder to determine the called virtual member functions.

Currently supported architectures are: ARM (thumb, arm, aarch64), PowerPC, RISC-V, SPARC, V850, and TriCore.


a³ screenshot

Improved Graph view

  • Call nodes of trampoline routines are now shown in the call graph.
  • From graph search for memory reads/writes it is now possible to jump from the search results to interactive VA via context menu.
  • Restructured context menu in Graph view.
  • Infeasible callers and call targets in the context menu are now marked by the suffix “(infeasible)”.
  • Annotation hints are now also included in the “Copy AIS annotations” menu.

a³ screenshot

Disassembly view

The Disassembly view has been completely revamped.


a³ screenshot

Customizable analysis overview

For the analysis overview under Home → Overview, you can now configure what columns it should display. This is done by right-clicking on the table header and selecting “Edit columns…” from the context menu.


a³ screenshot

TriCore-specific improvements

  • The GUI now automatically annotates the core special function register (CSFR) base address depending on the selected core.
  • The decoder can now automatically resolve syscalls and overflow traps if you specify the branch vector table (BTV) in the hardware configuration of the UI.
  • Now supporting manual and automatic resolution for software traps (class 5/class 6 traps) caused by the instructions SYSCALL, TRAPSV, TRAPV independently of the value of PSW.IS.