a³-Release 23.04

Verbesserter Abhängigkeiten-Editor

Reduzierter Speicherverbrauch

Verbesserte Statistiken

Verbesserter TraceVisualizer

Neue Zielarchitekturen

  • StackAnalyzer, ValueAnalyzer und TimingProfiler jetzt erhältlich für RL78.
  • Alle Tools für ARM, PowerPC, RISC-V und x86 unterstützen nun Analysen von dynamisch gelinkten ELF-Executables.

Qualifizierungskits

  • Neues QSK-Paket für StackAnalyzer für ARM mit den Instruktionssätzen AArch64 und generic.
  • Das Driver-Programm für die QSK-Pakete wurde umbenannt in qualify.
  • Korrigierte Kommandozeilenangaben im TOVVCP der compilerspezifischen QSK-Pakete.
  • Verbesserte Beschreibung der High-Level-Requirements.
  • Neue Beschreibung der QSK-Teststrategie.
  • Neue Testfälle:
    qk_ais2_attribute_defined
    qk_ais2_local_memory_accesses_cfg
    qk_ais2_context_specification_value_partitioning
    qk_ais2_user_registers
    qk_ais2_concat
    qk_setting_extract_volatile_memory_regions
    qk_setting_calling_conventions
    alle Architectures
    qk_setting_extract_constant_memory_regionsalle außer C16x
    qk_setting_trace_snippetsalle generischen TimeWeaver-Pakete
    qk_setting_system_bus_widthe300
    qk_setting_extract_annotations_from_executablesARM und PPC
    qk_setting_traceformat_lauterbach_branchflowARM und PPC (TimeWeaver)
    qk_setting_unsupported_instruction_valuex86, i386, dsPIC (StackAnalyzer)
    qk_settings_data_memory_size
    qk_settings_instruction_memory_size
    TriCore
    qk_setting_disable_data_access_to_pflash0
    qk_setting_disable_data_access_to_pflash1
    AURIX TC377
  • Der Testfall qk_ais2_context_specification_trace_partitioning führt jetzt zusätzliche Checks aus und deckt auch lokales Partitioning ab.
  • Der Testfall qk_setting_cache_specification deckt nun auch das Attribut line size ab.
  • Die Benennung des erwarteten Speichertyps in qk_setting_output_object_size_statistics_mpc5777c wurde korrigiert.
  • Die AIS2-Testfälle für MPC5777C wurden aktualisiert.

Benutzeroberfläche

  • Deutlich verbesserte Supportarchiv-Erzeugung bei großen und sehr großen Projekten.
  • Das Vergleichen von Projekten über „Project“ → „Compare projects…“ berücksichtigt nun auch Konfigurationsunterschiede.
  • Die Analysenübersicht bietet jetzt zusätzliche Tabellenspalten, darunter die letzten Ergebnisse und den maximalen Speicherverbrauch.
  • Bessere Behandlung von Meldungen mit mehreren Location-Angaben.
  • Die Ansicht zum Speicherverbrauch bildet nun auch den verfügbaren physikalischen Speicher ab.
  • Verbessertes Verhalten bei Verbindungsproblemen zum Lizenzserver.
  • Bessere Behandlung von Pfaden mit Kommas im XTC.
  • Bessere Behandlung von Konfigurationen.
  • In AIS-Editoren können nun alle Analysen, die von der aktuell geöffneten AIS-Datei abhängen, mit dem neuen Knopf „select affected analyses“ ausgewählt werden. Dazu zählen sowohl alle Analysen, die die AIS-Datei direkt benutzen, als auch die, die von den Analyseergebnissen abhängen. Die so ausgewählten Analysen können dann ganz einfach mit dem Play-Knopf neu gestartet werden.
  • The Analysis Dependencies editor now shows both dependencies and dependents.

Visualisierung und Analyseergebnisse

  • Now reporting multiple annotation locations for area contents specified through different contains data annotations.
  • Faster switching between contexts in the context-selection view for interactive value and pipeline analysis.
  • The context-selection view can now be hidden from within interactive value and pipeline analysis views.
  • Improved handling of blocks with multiple associated source files.
  • Improved annotation target context menus when many locations in the CRL graph are affected.
  • The WCET and variable usage per context in the Statistics view now displays its data as a flame graph.
  • The interactive value analysis allows searching for locations that change the value of a register or memory cell.
  • Improved representation of graph search results.
  • Better visualization of feasibility states in the graph search results.
  • A running interactive value analysis can be used to query the contents of const variables in the Symbols view.

Berichte

Decoding statistics in XML reports now include (unresolved) computed returns.

TraceVisualizer

  • Verbesserte Visualisierung.
  • Verbesserter Suchfilter.
  • A specific event can now be examined in more detail either by double-clicking on it or via a dedicated context menu entry.
  • Im Flame-Graphen wird nun für jede Taskinstanz die erste und die letzte Tracezeile angezeigt.
  • Verbesserte Behandlung von großen Datensätzen.

Annotationen

  • Any program point specified by the entry annotation will now be considered as entry point to decode when performing an analysis for “All functions” or “All code labels”.
  • Labels may now be defined by means of symbolic expressions:
    # define label whose name is given by the analysis ID
    label attribute("analysis_id"): 0x1000;
  • New functor concat(arg_1, ..., arg_n) for constructing symbol names:
    # define labels for interrupt service routines 
       for ("i" : 0 to 255) {
           label concat("ISR_", var("i")): 0xf0000000 + (0x20 * var("i"));
       }
  • It is now possible to use the result of a computation in other analyses, e.g. to create a dependency via a takes annotation.

Decoding

  • Decoding-Statistiken beinhalten nun die Anzahl von Instruktionen, die in den Speicher schreiben oder aus dem Speicher lesen.
  • Dekodiermuster, die sich auf Symboltabellen- oder Debug-Informationen verlassen, werden nun als unsicher klassifiziert.
  • Verbesserte Erkennung des CompCert-Compilers.

Value-Analyse

  • Reduzierter Speicherverbrauch.
  • Schnellere Schleifenanalyse.
  • Bessere Behandlung von Registern mit Unterregistern.
  • Erhöhte Präzision bei Kopien von Registern mit Unterregistern.
  • Schnellere Value-Analyse für x86_64.
  • Der Funktor width darf nun während der Value-Analyse-Phase ausgewertet werden.
  • Es wird nun gemeldet, wenn eine Funktion (vollständig) rückwärts-infeasible wird.

DWARF

Verbessertes Auslesen von globalen Datentypen.

Am486/i386/x86

  • Verbessertes automatisches Switch-Table-Decoding.
  • Stackpointer-Guessing im Flat- und Long-Mode.
  • Added info messages about guessed/specified stack pointer and specified stack area.
  • Relaxed restrictions for assignments to segment registers in 32-bit flat mode and 64-bit long mode.
  • Am486/i386: Improved handling of expand-down segments.
  • x86-64: Improved decoding of computed calls via function pointer arrays.
  • x86-64: Improved automatic decoding of two-dimensional function pointer arrays.

ARM

  • Erweiterung der unterstützten Instruktionssätze bis hin zu ARMv9.3, mit einigen Ausnahmen, die im Benutzerhandbuch beschrieben sind.
  • Verbessertes Switch-Table-Decoding für Clang.

C28x

  • Improved automatic decoding of computed control-flow transitions.
  • Verbessertes Switch-Table-Decoding für TI

TriCore

  • Improved automatic decoding of computed control-flow transitions.
  • Verbessertes Switch-Table-Decoding für Tasking

Cache- und Pipeline-Analyse

  • e200: Redirect usage of memory type SRAM_A or SRAM_B to SRAM.
  • TriCore AURIX 2nd GEN: Improved handling of core-local DLMU memory accesses and of fast call/return operations.

TimeWeaver

  • Mehr Flexibilität bei der Auswahl der zu extrahierenden Trace-Snippets.
  • Zeitannotationen für Routinen und Schleifen.

TraceVisualizer

  • Bessere Behandlung von Routinen mit Endlosschleifen.
  • Bessere Behandlung von Tasks, die während der Ausführung unterbrochen wurden und vom Interrupt-Handler neu aufgerufen werden können.