You can now save the current analysis state, any results computed so far, and all currently open views as a so-called Workspace.
Unlike simply saving a project, this allows you to take snapshots of your progress, revisit them, and build upon them. Whenever you open a Workspace, all the graphs, statistics, etc. are immediately there, without having to re-run the analyses first. This is especially useful for documentation and backup purposes.
In the user interface, this new feature is accessible via “Project” → “Save as workspace”.
To load a saved Workspace, use “Project” → “Open” as you normally would, but then instead of the main project file select a Workspace of your choosing (which is an APX file as well).
When running a³ in batch mode, you can export
analysis results as a Workspace via --export-workspace <workspace.apx>
.
Again, if you then open that Workspace in the GUI, all analysis
results, graphs and stats will be immediately available without
re-running anything.
Here is a complete sample command line for running the analysis in batch mode and archiving all results as a Workspace:
alauncher -b --export-workspace results.apx project.apx
Annotating your project is now easier than ever before. Whether you are looking at a graph or a statistics table, simply right-click on a routine or loop and select “Add annotation” from the context menu.
You will then be taken straight to the AIS file, with the selected annotation already typed out for you. Now simply fill in the values as desired, and you’re done.
Likewise, in the AIS editor itself you can now use “Insert AIS annotation” from the context menu to add further annotations, rather than typing everything by hand.
a³ now automatically determines any locations that should benefit from being annotated, and marks them for you with a light bulb in graphs and messages.
Clicking on that symbol will bring up the suggested annotation, and another click will add it to your AIS file.
The annotation hints are also included in analysis reports for documentation purposes.
Below are some examples of messages with annotation hints. Placeholders enclosed in angle brackets are highlighted in the GUI and can be double-clicked on to enter values of your choosing.
exec2crl: Info #1027: In "error.c", line 41:
In routine 'os_ErrorHook', at address 0x180138c:
Unresolved computed call in routine os_ErrorHook.
Annotation hint:
ais2 { instruction "os_ErrorHook" -> computed(1) { calls: <targets>; } }
Info: In routine 'main.L3', at address 0x1001b4:
Loop 'main.L3' is unbounded.
Annotation hint:
ais2 { loop "main.L3" { bound: 0 .. <int>; } }
Warning #3097: In "fibfac.c", line 1:
In routine 'fac', at address 0x180029c:
For routine 'fac' the default incarnation limit of 1 is used.
Please verify that this is correct.
The recursion details are:
0: main
1: fac
-> 2: fac
-> 3: fac
Annotation hint:
ais2 { routine "fac" { incarnation limit: 1; } }
When creating analyses from an information view, a template dialog is now displayed that enables you to customize them.
In addition, you can now mass-create analyses simply by typing up the list of entry functions in any editor view and using the context menu.
a³ can now be easily integrated in Jenkins, the leading open-source automation server. Simply download our free plugin from either jenkins-ci.org or GitHub.
The plugin allows you to: