a³ 24.10 release notes An HTML version of these notes is available at absint.com/releasenotes/a3/24.10 A video summary is available at youtube.com/watch?v=dSGm2U1x_is New targets All tools for TriCore now support TC212 and TC222. General improvements * Workspace files are now much smaller in size. * Stricter consistency checks for .apx files generated by customer scripts. Transport layer security * All the tools on all platforms now uniformly use OpenSSL. Please keep your OpenSSL libraries up-to-date. * 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. Comfortable handling of analysis groups * The "Edit analyses" dialog now allows re-assigning selected analyses to a different group. * Improved performance of the "Edit analyses" dialog. * The "Create analyses" dialog now lists available analysis groups to select from. * On the Overview page, analyses with additional starts can now be folded into a single line. 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 sorting and 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. * Generally improved stability. * Object size statistics can now be filtered to only show the objects reachable from the analyzed entry point. Difference Viewer Improved refreshing of the Results tab. PDF viewer The integrated PDF viewer now supports more navigation shortcuts. TraceVisualizer Improved stability of the Results view. 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. * The index_of_parameter functor now allows regular expressions to match the parameter name, e.g. index_of_parameter(match(".*abc")) == 1 * TimingProfiler for generic targets supports specifying execution times for individual instructions, e.g. instruction 0xa70 attribute "profiler_cycles": 23; This mode is only enabled if a global default for the number of cycles has been set, using the global annotation: attribute "profiler_cycles": 123; DWARF Improved support for Rust enum types. Cache and pipeline analysis * General improvements to the analysis speed. * Improved heuristics for the automatic selection between basic-block and prediction-graph 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 internal maximum size limit for value sets has been increased to 2048, to allow for improved partitioning in certain corner cases. The values in the GUI are unaffected by this change. 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 * Higher analysis precision for the xpread instruction. * Improved handling of copy sections in COFF files. * Improved automatic switch-table decoding. C33x * Improved handling of copy sections in COFF files. * Improved automatic switch-table decoding. FR81 Improved handling of flag registers. PowerPC * Improved loop-bound computation. * 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. * The invalid instruction 0xff is considered as end of program. 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. * Higher analysis precision for CSA accesses. TimeWeaver * Reduced memory usage. * More robust automatic detection of trace formats. * XML reports now include: * Trace segment feature vectors * Configured trace segment similarity features alongside the specified shared memory regions * Context-sensitively exported trace segments. 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). Qualification Support Kits * The default report file location is now based on the QSK installation path, and no longer on the current working directory. * 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 for ARM: * qk_ais2_adjust_trace_segment_runtimes_function * qk_ais2_adjust_trace_segment_runtimes_robustness ------------------------------------------------------------------------------ Last updated on 29 October 2024 by alex@absint.com. Copyright 2024 AbsInt. ------------------------------------------------------------------------------ An HTML version of these release notes is available at absint.com/releasenotes/a3/24.10 A video summary is available at youtube.com/watch?v=dSGm2U1x_is