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