Releasenotes für a³ 23.10

HTML-Version:
absint.com/releasenotes/a3/23.10

YouTube-Video:
youtube.com/watch?v=1nRGoQdeafk

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 Netztwerkverbindungen 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 bietet die Linux-Version Unterstützung 
für den Wayland-Fenstermanager.


APX

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


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ß-Transitionen.


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 and pipeline analysis

* 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

* Verbesserte Performance bei großen Traces und Tasksätzen.

* Verbesserte Behandlung der Lauterbach-BRANCHFLOW-Traces.


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_branch                alle 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 erweitert 
  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.


------------------------------------------------------------------------------
Zuletzt geändert durch alex@absint.com am 30. Oktober 2023.
------------------------------------------------------------------------------

HTML-Version:
absint.com/releasenotes/a3/23.10

YouTube-Video:
youtube.com/watch?v=1nRGoQdeafk