a³-Release 23.10

Neuer Trace-Filter

Bessere Darstellung mehrdimensionaler Felder

Verbesserungen an Analysegruppen

Verbesserter TimeWeaver

Neue Zielarchitekturen

  • aiT für ARM unterstützt jetzt STM32F103xx (Cortex-M3).
  • TimeWeaver ist jetzt erhältlich für V850/RH850.
  • StackAnalyzer und TimingProfiler für C28x bieten jetzt generischen TMS320F28x als Target.
  • Alle Tools für M68k unterstützen jetzt den Microtec-C-Compiler.

AbsInt-Lizenzmanager (ALM)

Alle Netzwerkverbindungen zwischen dem ALM-Server und den Clients sind nun TLS-verschlüsselt.

Beim Upgrade eines Clients auf dieses Release müssen Sie auch Ihren ALM upgraden. Ältere Client-Versionen werden nach wie vor unverschlüsselt damit kommunizieren können. Diese unverschlüsselte Verbindung können Sie bei Bedarf kappen, indem Sie den entsprechenden Port in Ihrer Firewall blockieren. Der voreingestellte Port für die nichtverschlüsselte Verbindung ist 42424. Für die neue TLS-verschlüsselte Verbindung ist der Port 42426 voreingestellt.

Zum Konfigurieren der Lizenz dient die neue Umgebungsvariable AI_LICENSE_TLS, derweil ältere Versionen die Umgebungsvariable AI_LICENSE nutzen. Dies ermöglicht es Ihnen, neue und alte Versionen bei Bedarf parallel zu betreiben, z. B.:

AI_LICENSE = alm-server@42424
AI_LICENSE_TLS = alm-server@42426

Das ALM-Webinterface wird nun zusätzlich zum HTTP auch über HTTPS serviert. Die voreingestellten Ports dafür sind 42425 bzw. 42427.

alauncher

  • Der Tool-Launcher kann jetzt ein beliebiges Verzeichnis nach installierten Produkten durchsuchen, das mittels der Kommandozeilenoption --dir <path> angegeben ist.
  • Der Launcher entdeckt nun automatisch alle a³-Tools in benachbarten a3*-Verzeichnissen. Somit können Sie nun ZIP-Dateien mehrerer Produkte in ein Verzeichnis entpacken und den Launcher eines beliebigen davon benutzen, um alle davon starten zu können. Wenn Sie z. B. ein Verzeichnis mit a3_arm_123, a3_arm_456 und a3_c_789 haben, können Sie den Launcher in a3_c_789/bin benutzen, um auf alle drei Tools zuzugreifen.

Linux-Unterstützung

Ab diesem Release unterstützt die Linux-Version den Wayland-Fenstermanager.

APX

Das XSD-Schema für APX-Dateien erlaubt nun das Attribut base_address für den Tag <executable/>.

Qualifizierungskits

  • Neue Pakete:
    • QSK für StackAnalyzer für ARM (AArch64) mit GHS 2020.1.4.
    • QSK für StackAnalyzer für TriCore (32) mit Tasking VX 6.2r2p3.
    • QSK für aiT für e200 (32) mit GHS 2012.1.
    • Generischer QSK für StackAnalyzer für C28x.
    • QSK für StackAnalyzer für C28x mit TI 18.2.3.lts.
  • Die TOR beinhalten nun einen „General requirements“-Abschnitt, sowie Abschnitte zu Eingabeformaten und Ausgabemeldungen.
  • Die TOR für qk_ais2_flow_constraints wurden ergänzt um die <ProgramPoint>-Syntaxvariante.
  • Die TOR für qk_ais2_program_point_offset und das Benutzerhandbuch wurden angeglichen im Hinblick auf die Beschreibung der Instruktionsklassen.
  • Neue Testfälle:
    qk_setting_unresolved_computed_branchalle Architekturen
    qk_setting_dynamic_linking_option
    qk_setting_dynamic_linking_executables
    ARM, PowerPC, x86
    qk_setting_trace_coverage
    qk_setting_trace_skipped_snippet
    alle TimeWeaver
    qk_setting_relocation_type_r_aarch64_abs64
    qk_setting_relocation_type_r_aarch64_copy
    qk_setting_relocation_type_r_aarch64_glob_dat
    qk_setting_relocation_type_r_aarch64_jump_slot
    qk_setting_relocation_type_r_aarch64_relative
    ARM AArch64
    qk_setting_relocation_type_r_ppc_addr32
    qk_setting_relocation_type_r_ppc_copy
    qk_setting_relocation_type_r_ppc_jmp_slot
    qk_setting_relocation_type_r_ppc_relative
    32-Bit-PowerPCs
    qk_setting_relocation_type_r_386_32
    qk_setting_relocation_type_r_386_copy
    qk_setting_relocation_type_r_386_glob_dat
    qk_setting_relocation_type_r_386_jmp_slot
    32-Bit-x86
  • Der Testfall qk_ais2_area_definitions_simple wurde ausgeweitet auf alle Varianten des Funktoren type().
  • Der Testfall qk_ais2_symbolic_names_label deckt nun auch Labels ab, die mithilfe von Stringausdrücken zusammengesetzt werden.
  • Der Testfall qk_setting_use_only_safe_patterns wurde aktualisiert.

Benutzeroberfläche

  • Beim Verschieben von Analysen zwischen Gruppen kann die Zielgruppe nun auch neu erstellt werden.
  • Für eine ausgewählte Gruppe können neue Analysen angelegt werden.
  • Verbesserte Behandlung von Analyse-Abhängigkeiten insgesamt und Abhängigkeiten von fehlgeschlagenen Analysen insbesondere.
  • Bessere Darstellung der Vergleiche zwischen Projekten mit fehlgeschlagenen Analysen.
  • Bessere Visualisierung von Syntaxfehlern in AIS-Editoren.
  • Die zu erwartenden ResultCombinator-Ergebnisse können nun auch im „Mass Edit“-Dialog angepaßt werden.
  • Tabellenspalten werden nun in derselben Reihenfolge nach CSV exportiert, in der sie in der GUI erscheinen.

Visualisierung und Analyseergebnisse

  • Verbesserte Suche nach Basisblockdaten in Graphen.
  • Verbesserte Anzeige von Speicherinhalten mehrdimensionaler Felder in der Symbolansicht.
  • Alle Daten in den Trace-Segment-Statistiken werden nun nach Möglichkeit in Zeiteinheiten angezeigt statt in Zyklen.

Berichte

Die Trace-Abdeckung wird von TimeWeaver nun auch in die XML-Berichte geschrieben, sofern „Output call graph“ (kontext-insensitiv) oder „Show per context info“ (kontext-sensitiv) unter „Setup“ → „Reporting“ eingeschaltet sind. Im XML-Bericht finden sich die ausgegebenen Daten unter a3 → timeweaver_analysis_task → timeweaver_analysis_results → trace_coverage.

Annotationen

  • Verbesserte Behandlung der Funktoren entries und mem.
  • Verbesserte Behandlung von komplexen Annotationen zur Inhaltsangabe von globalen Registern.
  • Bessere Berücksichtigung der Geltungsbereiche von instruction snippet { … } und instruction target { … }.
  • Bessere Behandlung von unterdrückten Meldungen.
  • Annotationen der Art
    area .. writable: false;
    haben nun einen Einfluß auf Annotationen, die aus (anfänglich) schreibbarem Speicher lesen.

Value-Analyse

  • Schnellere Type-Domain-Analyse.
  • Präzisere Adreßberechnung für Speicherzugriffe.

ARM

Verbessertes Switch-Table-Decoding für Clang und DiabData.

C28x

  • Unterstützung für die erweiterten Instruktionssätze FINTDIV, TMU, FPU64 und VCRC.
  • Verbessertes Decoding von ELF-Binärdateien.

M68020

  • Unterstützung für den Microtec-C-Compiler.
  • Verbessertes iteratives Decoding.

MIPS

Verbessertes iteratives Decoding.

PowerPC

  • Die Analysen gehen nun davon aus, daß der Wert des Registers r2 für 32-Bit-Executables durch SDA2BASE und für 64-Bit-Executables durch TOC gesetzt ist.
  • Verbesserte Feststellung von Ungereimtheiten zwischen der Analyse und den Annotationen.
  • Verbessertes iteratives Decoding.

RISC-V

Verbessertes automatisches Decoding von berechneten Kontrollfluß-Übergängen.

RL78

Der FLASH-Mirrorbereich muß nun unter Setup → Hardware konfiguriert werden.

TriCore

  • Verbessertes automatisches Decoding der Kontrollflußziele für syscall und trap.
  • Verbessertes Switch-Table-Decoding für Clang.

V850/RH850

  • Unterstützung für RH850G4MH-Instruktionen.
  • Die V850E3-Instruktion stc.w wird nicht mehr als ein Lesezugriff klassifiziert.

x86

  • Unterstützung für die ENDBRANCH-Instruktion (gemäß der Intel-CET). Diese wird wie ein NOP behandelt.
  • Verbessertes iteratives Decoding.

Cache- und Pipeline-Analyse

  • WCET-Analysen für STM32F103xx (ARM Cortex-M3).
  • Snippet-basierte WCET-Validierung für Am486.

TimeWeaver

  • Unterstützung für V850/RH850.
  • Durch Tracing-Fehler entstandene übermäßig hohe Zykluszahlen können nun rausgefiltert werden. Dazu gibt es in der GUI die neue Option „Threshold for timestamps“ unter „Setup“ → „Timing analysis“ → „TimeWeaver“. Der voreingestellte Wert ist 6000 Zyklen pro Instruktion.
  • Das Trace-Format wird von der Analyse nun nach Möglichkeit automatisch bestimmt.
  • Diverse Verbesserungen an den Trace-Segment-Statistiken.
  • Unterstützung für OWNERSHIP-Angaben in Lauterbach-Traces.
  • Verbesserte Bestimmung von gültigen Trace-Snippet-Enden.

TraceVisualizer

  • Bessere Performance bei großen Traces und Tasksätzen.
  • Verbesserte Behandlung der Lauterbach-BRANCHFLOW-Traces.