a³ release 9.04

Initial a³ release

a³ is the common framework in which AbsInt’s various analyzers are integrated. The most important advantages of the new and common interface are:

  • It is intuitive and context-sensitive.
  • Working with and switching between different analyses types is easy.
  • Several analyses of one type or different types can be grouped in one analysis project file.
  • Common AIS annotation files are shared between the various analyses.
  • New project files (APX) directly support batch mode.
  • Several new features such as debug-function and variable view, AIS annotation wizard.

Installation procedure

  • Windows: the software comes with an installation assistant. Double-click on "a3_target_win_nr_release.exe", and the setup wizard will guide you through the installation process.
  • Linux: the shell script install.sh will guide you through the installation process. An important difference from the aiT installation script is that at the start, a³ will offer to install its configuration file a3.conf either globally in /etc/xdg/AbsInt or locally in /home/user/.config/AbsInt/.

License management

When starting a³ for the first time, the license dialog will be opened automatically and ask you for a valid license file. Click on “Change license” and select your license.dat file.

The license dialog can also be invoked anytime via the menu “Help” → “License…”.

Note: former aiT license files are not valid for the a³ tool. You can request a new license file by contacting support@absint.com.

Documentation

Each a³ comes with a user documentation in PDF format. The documentation is up-to-date and the version number corresponds to the release version number.

For updates of the documentation, please refer to its appendix “Document History”.

General improvements

  • Reading of binaries with different debug formats is possible now.
  • Improved support for Windows Vista.
  • Fixed a bug in the Message view. When clicking on a link in a warning or error message, the corresponding C source file will be opened again as expected.

The new graphical user interface (GUI)

Refer to the included documentation on how to work with the new GUI. The documentation can be found under “Help” → “Manual”. If you have questions concerning the usage of the GUI, contact support@absint.com.

The most important changes are as follows.

  • New welcome screen.
    It allows to open analysis projects and documentation and offers links to customer support and lots of examples. The examples can also be found on the disc, the default directory under Windows being
    install path/AbsInt/Advanced Analyzer/target/build/examples/
    and under Linux
    install path/share/a3_target/examples/
  • New documentation.
    An AIS quick reference guide in PDF format is now accessible from the welcome screen.
  • New call and control flow graph viewer.
    The aiSee graph viewer has been fully integrated into a³. It is not a separate executable anymore and therefore cannot be found in the bin directory.
  • New a³ launcher program.
    The a³ tool comes with a launcher program. Under Windows, it’s the executable
    install path/AbsInt/Advanced Analyzer/common/bin/a3.exe
    Under Linux, it’s
    install path/bin/a3
    If several instances of a³ have been installed (e.g. a³ for different targets or different builds of a³ for the same target), the a³ launcher allows to select a specific a³ tool (and build) or directly open recently opened project files in a specific a³ tool (and build).
  • New AIS file editor.
    An AIS editor with syntax highlighting and support for syntax completion is integrated into a³. For the global AIS file, the editor can be invoked in the “Files” view by clicking on the “Edit” button to the right of the “AIS file” field. For the local AIS file, the editor can be invoked in the “Specification” view of a particular analysis.
  • New analysis project files.
    The analysis project files are now in XML format (.apx file name suffix). Old aiT analysis project files (.apf) can be loaded into a³ and then saved in the new .apx format. The new format allows to specify several analyses for the same project. An external .ctl control file is no longer necessary for batch mode (see below). To ensure backwards compatibility, old aiT .ctl files can be imported into a³ via Analysis” → Overview” → Managing existing analyses” tab at the bottom → button Import control file from aiT analyzer”.
  • New batch mode.
    a³ can be invoked in batch mode without the need to start an X11 server, for example:
    a3 <target> project.apx -b
  • Textual report files and report files in XML format have changed.
  • The button bar is now context-sensitive, i.e. the icons displayed depend on the active view. The button bar is customizable.
  • When using a³ over a remote connection on a Linux machine, the extra command line switch -graphicssystem native is now obsolete.

New source-file and disassembly view

  • In the code view, the disassembly for an analysis item is accessible via the “Disassembly” button in the analysis item specification.
  • Additionally, a list of connected C source files is displayed under “Code view” → “Source files”. Double-clicking on a file in the list opens it in read-only mode.

New debug view for exploring the Dwarf debug information

All variables, types, and structured types contained in the executable can be now explored under Debug view” → Variables”. Additionally, this view presents a list of all the functions contained in the executable along with information about their parameters.

Graph visualization updates

  • The design of routine and basic block nodes has slightly changed. There are now blue circles inside routine control flow graphs indicating that the last instruction of the preceding basic block was a call.
  • Infeasible basic blocks or routines are marked grey.
  • New graph legend which can be separately invoked via the “Toggle legend” button.

aiT WCET analysis

  • Improved performance of analyses modules.
  • Improved pipeline state visualization for several targets.

StackAnalyzer

  • Improved performance of analyses modules
  • The stack analysis is now performed by the value analysis module <target>daan. Note: some warning and info messages might occur that are only relevant for the aiT analysis.
  • The memory consumption of the analysis can be reduced under Configuration” → Analyses” → Advanced” → Do not analyze values of memory cells”.
  • Warnings for missing loop bound of a stack modifying loop might occur, usually originating from a wrong or missing annotation for some stack effects within the loop.

ValueAnalyzer

  • Value analysis results can be interactively explored in a³.
  • The set of additional annotations of the former aiV tool is now available in a³.

Target-specific release notes

  • HCS12:
    • Improved handling of library functions such as c_lgduv, c_lgop, c_lgmul. The annotation
      entry 0xe1:0x7dd2; # Start address of "c_lgop"
      is no longer necessary.
    • The value and stack analysis (hcs12daan) has been improved. The internal representation has changed from CRL to the more efficient CRL2 format.
    • New switch statement patterns have been added.
  • MPC55xx:
    • Solved issue with MSF import.
    • Value analysis (powerdaan):
      • Added new switch patterns.
      • Corrected semantics of the div instruction (SPE instruction set).
    • Pipeline analysis (mpc55xxpipe): accesses to flash memory were modeled too conservatively. In the new release, the flash access time is reduced, generally by two cycles. Consequently, the overall analysis precision improved by about 30%.
  • MPC 603e, MPC 7448, and MPC 755/Hurricane:
    Important note concerning write-through stores to memory areas that have been locked into L1 cache accessing the bus, i.e. with the annotation
    memory area 0xXXXX .. 0xYYYY
    access
        data
            cached, locked, not guarded;
    The default semantics have changed so that the cache strategy “write-through” is implicitely assumed unless specified otherwise. Thus, if memory areas have been locked into a cache with the “write-back” strategy, you must add the keyword “write-back” to the area annotation:
    memory area 0xXXXX .. 0xYYYY
    access
        data
            cached, locked, not guarded, write-back;
  • V850:
    • The pipeline analysis has been improved and extended.
      • Support for accesses to Flexray areas.
      • Enable access to peripheral memory area.
      • CAN clock division factor.
      • Enable access to CRC.
      • Enable access to data flash.
    • The model for ROM accesses has been improved.
    • The definition of the value “?” for unknown memory accesses in the report file has been changed, i.e. global default access annotations can be applied now.
    • Memory access annotations with addresses where the higher bits are not zero will no longer produce warnings. For example,
      instruction "_main" + 4 writes accesses 0xffff0000 .. 0xfffff000;
      will not result in a warning from v850daan.
    • New target configuration options:
      • “Force aligned data accesses” in the “V850” view.
      • The option “Assume aligned data accesses” has been moved from the “Analyses” view to the “V850” view.
      • Further new options in the “V850” view, “General” tab.
      You might have to extend your existing machine settings file (.msf) or directly the target configuration in the V850 view, if necessary.