Releasenotes für a³ 24.10

Diese Notes als HTML finden sich unter
absint.com/releasenotes/a3/24.10/index_de.htm

Eine Übersetzung ins Englische findet sich unter
absint.com/releasenotes/a3/24.10/index.htm

Eine Kurzzusammenfassung als Video auf Englisch findet sich unter
youtube.com/watch?v=dSGm2U1x_is


Neue Zielarchitekturen

Alle Tools für TriCore unterstützen nun TC212 und TC222.


Allgemeine Verbesserungen

* Workspace-Dateien verbrauchen jetzt deutlich weniger Platz.

* APX-Dateien, die Sie von eigenen Skripten erzeugen lassen, 
  werden jetzt strikter überprüft.


Transport-Layer-Security

* Alle Tools unter allen Betriebssystemen benutzen jetzt einheitlich 
  OpenSSL. Stellen Sie immer sicher, daß Ihre OpenSSL-Bibliotheken 
  auf dem letzten Stand sind.

* Falls Sie von einem älteren Release als 23.10 upgraden, 
  muß neben Ihrem a³-Client auch Ihr Lizenz­manager aktualisiert werden. 
  Dies ist notwendig aufgrund der TLS-verschlüsselten Verbindung 
  zwischen dem Client und dem Lizenzmanager, die erst seit dem 
  Release 23.10 besteht.


Bequemeres Arbeiten mit Analysegruppen

* Analysen können nun auch über den „Edit analyses“-Dialog 
  zwischen verschiedenen Gruppen verschoben werden.

* Insgesamt wurde die Performance des „Edit analyses“-Dialogs verbessert.

* Der Dialog zum Anlegen von neuen Analysen führt nun 
  bereits vorhandene Analysegruppen auf.
  
* Analysen mit mehreren Startpunkten können in der Analysenübersicht 
  zu einer Zeile gefaltet werden.


Textsuche

Die Suche mittels Ctrl + F in allen Editor-Ansichten füllt nun das Suchfeld
mit dem aktuell markierten Text. Falls kein Text markiert ist, 
wird das Wort unter dem Mauszeiger genommen.


Graphsuche

Verbesserte Sortierung und Hervorhebung von Suchergebnissen.


Symbols-Ansicht

* Verbesserungen am „Query contents“-Vorgang.

* Zusätzlicher Filter zum Suchen nach Sections.


Statistik-Ansichten

* Benutzerdefinierte Spalten werden nun über verschiedene a³-Instanzen hinweg 
  propagiert.
  
* Insgesamt verbesserte Stabilität.

* Statistiken zur Objektgröße können nun gefiltert werden, um nur diejenigen 
  Objekte anzuzeigen, die vom aktuellen Analyse­startpunkt aus erreichbar sind.


Difference-Viewer

Bessere Aktualisierung der Tabs.


PDF-Viewer

Der integrierte PDF-Viewer unterstützt nun mehr Tastenkombinationen.


TraceVisualizer

Verbesserte Stabilität der Ergebnisansicht.


Annotationen

* Bessere Behandlung von Codeabschnitten, die von der Analyse 
  ausgeschlossen wurden und mehrere Fortsetzungsstellen haben.
  
* Verbesserte Auflösung von komplexen Aufrufzielannotationen.

* Schnellere Auswertung von Wertemengenausdrücken.

* Der Funktor „index_of_parameter“ akzeptiert nun „match“ als Parameter, z. B.

    index_of_parameter(match(".*abc")) == 1
    
* Beim TimingProfiler für generische Targets kann die Ausführungszeit 
  einzelner Instruktionen explizit angegeben werden, z. B.:

    instruction 0xa70 attribute "profiler_cycles": 23;
    
  Dies hat nur einen Effekt, wenn ein globaler Default für die Zyklenanzahl
  gesetzt wurde, mittels der globalen Annotation:

    attribute "profiler_cycles": 123;


DWARF

Bessere Unterstützung für Enum-Typen von Rust.


Cache- und Pipeline-Analyse

* Insgesamt höhere Analysegeschwindigkeit.

* Verbesserte Heuristiken zur automatischen Wahl
  zwischen Basisblock- und Prediction-Graph-Pfadanalyse.
  

Pfadanalyse

Reduzierter Speicherverbrauch der ganzzahligen linearen Optimierung.


Value-Analyse

* Mögliche NULL-Pointer-Dereferenzierungen werden nun
  als Meldungen ausgegeben statt als Warnungen.

* Verbesserte Erkennung von Widersprüchen zwischen 
  benutzer­annotierten (konstanten) Speicher­inhalten
  und dem analysier­ten Code.
  
* Das interne Größenlimit für Wertemengen wurde auf 2048 erhöht,
  um bessere Partitionierung in seltenen Spezialfällen zu ermöglichen.
  Die Werte in der GUI bleiben wie gehabt.


ARM

* Neues Switch-Table-Pattern zur heuristischen Bestimmung der Switch-Table-Größe.
* Bessere Behandlung von ungültigen geschützten Codeblöcken bei Thumb.
* Die UDF-Instruktion, welche eine undefinierte Exception aufwirft,
  wird nun als Programmende behandelt.
* Verbessertes Switch-Table-Decoding.


C28x

* Präzisere Analyse von der xpread-Instruktion.
* Bessere Behandlung von Copy-Abschnitten in COFF-Dateien.
* Verbessertes Switch-Table-Decoding.


C33x

* Bessere Behandlung von Copy-Abschnitten in COFF-Dateien.
* Verbessertes Switch-Table-Decoding.


FR81

Bessere Behandlung von Flag-Registern.


PowerPC

* Verbesserte Berechnung von Schleifengrenzen.
* e200: bessere Behandlung von serialisierten Instruktionen.


RISC-V

Neues Pattern zur heuristischen Bestimmung der Switch-Table-Größe.


RL78

* Unterstützung für ?C_SSWITCH_L10-Switch-Tabellen.
* Die ungültige Instruktion 0xff wird nun als Programmende behandelt.


TriCore

* Unterstützung für TC212 und TC222 (beides AURIXe der ersten Generation).
* Verbessertes Switch-Table-Decoding.
* Bessere Behandlung von Aufrufen von externen Routinen 
  für AURIXe der 1. und 2. Generation.
* Präzisere Analyse von madd.u-Instruktionen.
* Präzisere Analyse der Zugriffe auf den CSA.


TimeWeaver

* Reduzierter Speicherverbrauch.

* Verbesserte automatische Erkennung von Trace-Formaten.

* Die XML-Berichte beinhalten nun zusätzlich:

  * Trace-Segment-Feature-Vektoren
  
  * Konfigurierte Trace-Segment-Ähnlichkeiten
    mitsamt der angegebenen gemeinsam benutzten Speicherbereiche
    
  * Kontextsensitiv exportierte Trace-Segmente.
    Wenn die Zeit für ein Trace-Segment aus einem anderen Trace-Segment
    übernommen wurde, wird dies im neuen Attribut „adjust_edge_id“ 
    festgehalten, das die ID der Graphen­kante angibt.

    
Qualifizierungskits

* Berichtsdateien werden nun, sofern vom Benutzer nicht anders angegeben,
  relativ zum QSK-Installationspfad abgelegt, anstatt relativ zum aktuellen
  Arbeitsverzeichnis.

* Neue boardspezifische QSKs:

  * aiT für TC379 (32 Bit)
  * aiT für TC389 (32 Bit)
  * aiT für TC399 (32 Bit)
  * aiT für TMS320F28335 (32 Bit)

* Neue compilerspezifische QSKs:

  * aiT für C28x mit TI 6.2.0
  * StackAnalyzer für C28x mit TI 6.2.0

* Neue Testfälle für ARM:

  * qk_ais2_adjust_trace_segment_runtimes_function
  * qk_ais2_adjust_trace_segment_runtimes_robustness

  
------------------------------------------------------------------------------
Zuletzt geändert durch alex@absint.com am 31. Oktober 2024.
------------------------------------------------------------------------------

HTML-Version:
absint.com/releasenotes/a3/24.10/index_de.htm

In Englisch:
absint.com/releasenotes/a3/24.10/index.htm

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