DWARF debug information is now extracted faster while using less memory, with additional improvements to the reader’s stability, the search function, and the reporting of array index conflicts for heuristics. Also, annotations for areas and calls can now be generated directly from within the DWARF view.
Added support for automatically including all specified header files at the beginning of each processed source file.
The portable version for Linux now comes as a ZIP file just like under Windows. For both OSes, the top-level directory within is now named just like the file itself. This prevents different builds from overwriting each other upon unzip. Under Linux, the ZIP file also contains the install script, should you later decide to install the software rather than running it from the unzipped directory.
Improved performance of interactive value analysis results.
# user register, overwrites instruction 0x10e0 begin partitioning: user("r") = [ 1, 2, 3 ]; # user register, restrict (only the given values allowed) instruction 0x10e0 begin partitioning: restrict user("r") = [ 1, 2, 3 ]; # normal register, intersects instruction 0x10e0 begin partitioning: reg("r") = [ 1, 2, 3 ]; # memory cell, intersects instruction 0x10f0 begin partitioning: mem(0x100000, 1) = [ 1, 2, 3 ];Further details have been added to the manual.
You can now choose whether the contents of memory cells
specified by area contains data
annotations should be joined or overwritten.
By default the contents are joined. This is useful if the decoder encounters
several area contains data
annotations for the same area in different
annotation files. This can happen e.g. if an analysis depends on several
collect-initialization analyses.
Example:
# join area contents (default) area "globalFunPtr" contains data: 0x1234; area "globalFunPtr" contains data: 0x5678; # the content of globalFunPtr is now either 0x1234 or 0x5678 # overwrite area contents area "globalHndlPtr" contains data: 0x1234; area "globalHndlPtr" contains { data: 0x5678; mode: overwrite; } # the content of globalHndlPtr is now 0x5678
suppress message
annotation applied to a routine or loop now affects
all locations (i.e. instructions) within that routine or loop.begin partitioning: trace;
” may now also be applied to loops.takes: X cycles
” for loops may now also be applied to
(normal, non-recursive) routines.
routine "testFunction" { takes: 1234 cycles; }
__compcert_ais_annotations
of the input executable.exec2crl.spec: Info: In "ISR1_hwcheck.ais", line 15, column 1:
Copying 1140 bytes starting at 0x8003d3 contained in section '.text' to 0x804df5.
copy area
for non-byte architectures.
tbb
and tbh
bx pc
instruction 0x800009fe reads from [0x00000000..0x10000fff, 0xf0001000..0xffffffff]:[4..5] (imprecise in 1 context (25.0%))
width_minimal
attribute now added to the XML report
for the combined context-insensitive output* memory areas considered as constant:The annotation is also linked from contradiction warnings:
In "struct.ais", line 3, column 34:
1: [0x000011a4..0x000011a7]
[0x000011a4]:4 contains 0x00, 0x00, 0x11, 0xa8
eva-tricore: Warning #3088: In "manager.c", line 12:
In routine 'Init.L1', at address 0xc6560:
In context '0xa6550->"Init", 0xc6550->"Init.L1"[123]':
In "memory_content.ais", line 100, column 42:
Write access to [0x7c54]:4 ('Data[12].DataField') in constant memory contradicts user annotation.
Annotated value:
* [0x00000001..0x0000001f]
Contradicting computed value:
* [0x00000000]
isel
instruction for Lauterbach NEXUS export traces.Implemented reverse-mapping export from trace segment costs to their originating trace input location.
SCXT
instructionCPUCON1
, CPUCON2
, CP
, SP
,
STKUN
, STKOV
, VECSEG
, TFR
, and PSW
eciwx
and ecowx
.Support for automatically including all specified header files at the beginning of each processed source file.
Improved reporting of source code line numbers in XML reports.