Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
WinDbg-Logo mit einer Lupe, die Bits inspiziert.
Dieser Artikel enthält Informationen zu den Neuerungen in WinDbg. Frühere Versionen wurden als WinDbg Preview veröffentlicht.
1.2606.22001.0
Neue Funktionen
- Unterstützung für die Secure-Kernel- (
-s) KDNET-Konfiguration inkdnet.exehinzugefügt. - Verbesserte ASAN-Debugging-Workflows in WinDbg (keine AV-Flut mehr beim Start!).
- Es wurden detailliertere Hinweise zu Disassemblierungsanweisungen sowie lokale, auf Markdown basierende Hilfeinhalte hinzugefügt.
- Unterstützung für die Tastaturnavigation in Workflows für die Verbindung zu Geräten hinzugefügt.
- Es wurde die Möglichkeit hinzugefügt, eine direkte Verbindung zu WSL-Prozessen herzustellen.
- Unterstützung für einfache APX-Register in Debuggerregisteransichten hinzugefügt.
Verbesserungen des Debuggingmoduls
- Erweiterte Unterstützung für Linux-Register und -Kontext mit SVE/SME- und XSTATE-Verarbeitung, einschließlich Unterstützung für Signal-Frame-Unwind.
- Verbessertes Quelldownloadverhalten über srcsrv, einschließlich besserer Behandlung und Diagnose im sicheren Modus.
- Verbesserte Zuverlässigkeit des Erweiterungskatalogs.
- Verbesserte Problembehandlung für Symbole mit zusätzlichen Diagnoseinformationen und verbessertem Fallbackverhalten bei Quelllinks.
- Verbesserte Zuverlässigkeit beim Abruf von Registerkontexten aus KD und Plug-In-Registerkontexten.
- Unterstützung für
char8_thinzugefügt, PE/DWARF-Verarbeitung mit separaten Debugpaketen verbessert und Diagnose für!heap-Fälle mit Image-gestützten Daten verbessert. - Erweiterte KDNET-Geräteunterstützung und verbesserte Zuverlässigkeit, einschließlich Intel E800/E2500/10G/40G sowie weiterer Korrekturen im NIC-Pfad.
- Behobene EXDI-Registersatzfehler und korrigierte Behandlung für größere (>256-Bit)-Vektorregisterfälle.
Allgemeine UI-Verbesserungen
- Verbesserte Fehlerdarstellung beim Starten und Anhängen mit klareren, benutzerseitigen Diagnosemeldungen.
- Verbesserte Hex-Editor- und Datenmodellinteraktionen, einschließlich Kontextmenüs, DML-Hervorhebung und Fokusstabilität in DMO-Rastern.
- Verbesserte Barrierefreiheit in Befehls- und Eingabeoberflächen, einschließlich Automatisierungsnamen, Sichtbarkeit des Fokus mit hohem Kontrast und Tastaturfokushinweisen.
- Verbesserte Behandlung von Startverzeichnissen für Remote-Starts, um Fehler aufgrund eines ungültigen initialen Pfads zu vermeiden.
- Im Werkzeugfenster „Protokolle“ wurde der Befehl Protokolldateipfad kopieren hinzugefügt.
- Rückgängigmachen der Klicknavigation für die Disassemblierung hinzugefügt und das Verhalten von Lesezeichen in unverankerten Fenstern und beim Speichern von Skripts verbessert.
- Konfigurierbares Fallback für die Quellcodierung und eine Opt-out-Möglichkeit für Konfigurationsaufforderungen für lokale Dumps hinzugefügt.
Time Travel Debugging (Zeitreise-Debugging, TTD)
- TTD im 2603-2606-Payload von 1.11.592 auf 1.11.610 aktualisiert.
- Ein Absturz beim Ausführen von
.cxrin TTD-Traces wurde behoben und ungültige Änderungen an Registern beim Debuggen von TTD-Traces wurden verhindert. - Verbesserte Unterstützung für WinDbg-
-recordengine-Szenarien mit Prozesszielen des Windows-Subsystems für Linux (-pwsl).
Fehlerkorrekturen
- Die automatische Erkennung der Engine-Architektur für ausführbare Pfade ohne Erweiterungen wurde korrigiert, wodurch ein x86/x64-Konflikt beim Start verhindert wird.
- Das Live-Linux-Debugging mit dem GDB-Plug-In wurde behoben.
- WOW64-Debuggingprobleme wurden behoben, wenn eine x64-Engine auf einen x86-Prozess abzielt.
- Fehler beim Linux-Heap-Walk in einigen Dump-Szenarien wurden behoben.
- Falsche Fehler bei der Wiederherstellung von Haltepunkten wurden behoben, indem Einträge übersprungen werden, die keine gültigen Wiederherstellungsbefehle generieren können.
- Wiederkehrende UI-Probleme in unverankerten Fenstern und Fenstern mit automatischem Ausblenden sowie im Layoutverhalten von Befehlsfenstern wurden behoben.
- Regressionen bei leeren Automatisierungseigenschaften und damit verbundene Probleme mit Barrierefreiheitsbezeichnungen wurden behoben.
- Fehler beim Analysieren des
symsrv2-VPack-Manifests wurden behoben und das Abbruchverhalten für Symbol- und Quell-Downloadvorgänge wurde verbessert. - Die VerifiedNICList-Suche in
kdnet.exefür Ausführungsalias-Installationen wurde korrigiert.
1.2603.20001.0
Neue Funktionen
- Erste Unterstützung für ARM64 Scalable Vector Extensions (SVE) hinzugefügt, wodurch die Grundlage für das Debuggen von ARM64-Zielen geschaffen wird, die SVE-Register verwenden
- Schaltflächen " Arbeitsbereich öffnen" und " Arbeitsbereich speichern " für eine einfachere Sitzungsverwaltung hinzugefügt
- Systemdesignmodus hinzugefügt – WinDbg folgt nun der Windows-Systemeinstellung "Hell/Dunkel".
- Deutlich verbesserter Hilfetext für CPU-Anweisungen in der Disassemblierungsansicht, wodurch eine bessere Inlinedokumentation bereitgestellt wird
- Die Zuverlässigkeit der Wiederverbindung des KDNET-Reverse-Protokolls bei unerwartetem Neustart des Ziels wurde verbessert
-
kdnet.exeDas Konfigurationstool ist jetzt in WinDbg enthalten. - Es wurden die Befehlszeilenoptionen
-Qund-WFzu WinDbg hinzugefügt.
Verbesserungen an der Debugging-Engine
- Verbesserte Registerzustandsbehandlung (XSTATE) in verschiedenen Zielkonfigurationen
- SIMD-Vektorregister können jetzt in mehreren Ansichten (Byte, Wort, Dword, Float usw.) angezeigt werden, sodass gepackte Daten in unterschiedlichen Formaten leichter geprüft werden können.
- Lange Ganzzahlen werden jetzt mit der Standardbasis im Datenmodell gedruckt
- Api zum manuellen Öffnen von Zielkompositionssymbolen hinzugefügt
- Verbesserte Leistung der Symbolnamenssuche, insbesondere bei DWARF und anderen Plugin-Symbolanbietern
Allgemeine Verbesserungen der Benutzeroberfläche
- .NET SDK auf 10.0.103 aktualisiert (Sicherheitsupdate)
- Aktualisierte Symbolleiste des Befehlsfensters und weitere Aktionen hinzugefügt
- Beim Einfügen in die Eingabe des Befehlsfensters werden jetzt nachgestellte Leerzeichen entfernt
Time Travel Debugging (Zeitreise-Debugging, TTD)
- TTD auf Version 1.11.592 aktualisiert
- Die Robustheit des Indexers beim Indizieren großer Ablaufverfolgungen (Zehner bis Hunderte von GB) wurde verbessert. Dies erforderte eine Änderung des Indexformats, sodass bestehende Protokolleinträge neu indiziert werden müssen.
-
$@cursession.TTD.Calls()meldet jetzt genauere Parameterinformationen für 32-Bit-Assembly-Stubs - Ein Problem wurde behoben, bei dem der Ausgangscode eines ausführbaren Einstiegspunkts vom aufgezeichneten Prozess nicht ordnungsgemäß zurückgegeben wurde.
Fehlerbehebungen
- Das im Fenster „Register“ angezeigte falsche x64-Paritätsflag wurde korrigiert
- Es wurde ein Problem behoben, bei dem der eingebettete PDB-Pfad im Debugverzeichnis nicht ausprobiert wurde, wenn zuerst eine nicht übereinstimmende PDB im Suchpfad gefunden wurde
- Ein Hängenbleiben bei CLR-Stapelüberprüfungen, wenn der DBI-Stack-Walker in eine Schleife eintrat, wurde behoben
- Ein Absturz, der durch einen von
GetSymbolByIdin der CLR-Komposition zurückgegebenen Nullzeiger verursacht wurde, wurde behoben - Es wurde behoben, dass die Eingabeaufforderung des Befehlsfensters nicht angezeigt wurde, wenn sie spät in einer Sitzung geöffnet wurde
- Fehler bei der Eingabe und im Verlauf des Befehlsfensters wurden behoben
- Ein Problem wurde behoben, bei dem Skriptfehlerhinweise im Skript-Editor nicht angezeigt wurden.
- Ein Absturz während des Andockens von Toolfenstern wurde behoben
- Ein Problem wurde behoben, bei dem einige Registry-Lesevorgänge die neuesten Werte nicht widerspiegelten.
- Ein Problem wurde behoben, bei dem der Eingabetext im Befehlsfenster "hüpfte", wenn der Cursor bewegt wurde.
- Ein Problem wurde behoben, bei dem ALT+LEERTASTE das Systemmenü für schwebende Fenster nicht aufgerufen hat.
- Es wurde ein Problem behoben, bei dem das Erweitern von Elementen im Fenster "Lokale" das Element aus dem Sichtfeld scrollen würde.
1.2601.12001.0
Allgemeine UI-Verbesserungen
- Upgrade auf .NET 10
- Aktualisiertes Skriptfenster für die Verwendung des neuesten Monaco-Editors (0.55.1)
- Schaltflächen zum Rückgängigmachen/Wiederholen zur Menüband-Registerkarte „Skript“ hinzugefügt
- Verbesserter Fokus während der Tastaturnavigation zwischen Toolfenstern
- Kleinere Probleme beim Scrollen und Auswählen im Disassembler-Fenster wurden behoben.
- Es wurde ein Problem behoben, bei dem das Registerfenster andere Werte als der "Register"-Befehl anzeigte.
- Es wurden mehrere Probleme mit hohen DPI-Werten behoben.
- Überprüfen und melden Sie das Alter des Debuggers mit einer Warnung, falls er "zu alt" ist.
- Ein Absturz wurde behoben, wenn der im Modellfenster ausgewählte Diagrammmodus für eine leere Abfrage geöffnet wurde.
- Implementierte absturzsichere Logs für WinDbg
Verbesserungen des Debuggingmoduls
- Die Leistung bei der Suche nach nicht vorhandenen Symbolnamen wurde verbessert (insbesondere für DWARF und andere Plug-Ins)
- Nullüberprüfung für OnTargetCompositionEvent-Handler hinzugefügt
- Das Lesen von Zeigertagmasken wurde aktiviert
Time Travel Debugging (Zeitreise-Debugging, TTD)
- TTD Version 1.11.567 -> 1.11.584
- Mehrere Verbesserungen zur Steigerung der Performance und Robustheit der Indizierung, einschließlich einer 5-fachen Geschwindigkeitssteigerung für große (100+ GB) Protokolldateien.
- Es wurde ein Problem behoben, das vom Kunden gemeldet wurde: Der Zugriff auf das TEB über das Segmentregister mit 32-Bit-Adressen funktioniert. (1.11.572)
- Genauere Aufruflisten um Syscalls. (1.11.582)
Fehlerkorrekturen
- Fehler vom Typ „Typinformationen nicht gefunden“ aufgrund unsachgemäß behandelter komplexer Speicherorte wurden behoben
- Probleme mit der Zeilenbeendigung des Konsolendebuggers bei umgeleiteter E/A und Nicht-Unicode-Zeichen wurden behoben
- Feste CPR/EPR-Ereignisfilterung unter Linux
- Fehlende Funktionsbezeichnungen in der Demontageansicht für Linux wurden behoben
- Die Auflösung von Importfunktionen in Linux-Binärdateien, die mit CET kompiliert wurden, wurde korrigiert
- Es wurde behoben, dass nicht aufgelöste Haltepunkte dazu führten, dass Live-Linux-Debugsitzungen nach dem Laden des Moduls unbrauchbar wurden
- Es wurde behoben, dass threadlokale Variablen unter Linux nicht angezeigt werden konnten, wenn eine Verbindung über GDBServer bestand
- Ein Absturz des ELF-Image-Seiten-Overlays wurde behoben, wenn der Speicherdienst des zugrunde liegenden Ziels keine Speicherinformationen implementiert
- Ein Absturz von variadischen Druckfunktionen im Debugger aufgrund einer unsachgemäßen Verwendung von Formatparametern wurde behoben
- Inkonsistenzen bei der Behandlung von long, unsigned long und wchar_t auf UNIX-Varianten-Betriebssystemen (LLP64 vs. LP64) wurden behoben
- Ein Deadlock beim Warten auf den Bereinigungsthread während des Herunterfahrens des Debuggers wurde behoben
1.2511.21001.0
Neue Funktionen
- Verbesserte Dateiauswahl mit prioritätsbasierter Behandlung, die auf CAB-Dateien und -Ordner erweitert wurde, um eine bessere Zielbestimmung für Dumpdateien zu ermöglichen
- Verbesserte Downloads von ELF-, DWARF- und Mach-O-Symboldateien mit erweiterten Protokollierungs- und Statusmeldungen.
- Die Umgebungsvariable DBGHELP_DIA_PATH hat nun Vorrang vor den derzeit geladenen Modulen für eine bessere Kontrolle der Symbolverarbeitung.
- Verbesserungen bei der Mitgliedsnamenindizierung für eine bessere Symbolnavigation und Suchleistung
Fehlerbehebungen
- Problem behoben, bei dem Speicherschreibvorgänge in Live-Linux-Ziele fehlschlugen
- Das Laden und die Funktionalität von DAC- und SOS-Erweiterungen bei Verbindung mit Live-Debugging-Zielen wurden korrigiert
- Problem behoben, bei dem angefügte ausführbare Dateien als "imageXXXXXXXX" anstelle von tatsächlichen Namen angezeigt wurden
- Der Downloadcode von NuGet.exe wurde behoben, der durch die negative Cacheimplementierung fehlerhaft geworden war.
- Behobene UI-Verzögerungen bei Verwendung von exdigdbsrv
- WMI-Ausnahmen vom Kompatibilitätsprüfer für den USB 3.1-Workaround wurden behandelt
- Unrichtige Warnungen (C6518) aus den SAL-Annotationen von wdbgexts.h entfernt
- Fixierte Typinformationen-Anzeige für
char16_tundchar32_tTypen auf Linux-Plattformen
Allgemeine Verbesserungen der Benutzeroberfläche
- Neue Option "Vereinfachtes Menüband hinzufügen", wodurch der vertikale Fußabdruck des Menübands reduziert wird.
- Aktivierte Grafikhardwarebeschleunigung bei Ausführung in RDP-Sitzungen (Remotedesktop Protocol)
- Verbesserte Leistung beim Aktualisieren im Disassembly-Fenster
- Feste DPI-Skalierung für Toolfensterkontextmenüs in verschiedenen Monitorkonfigurationen
- Die Versionsinformationen auf der Seite "Info" sind jetzt auswählbar, um das Kopieren zu erleichtern.
- Entfernte Unterstützung für veraltete IDNA-Technologie (Internationalisierte Domänennamen in Anwendungen)
- Bereinigung des Debuggerprotokolls, um frühe Starteinträge der Anwendung aus dem Erweiterungskatalog und anderen internen Vorgängen auszuschließen
Zeitreise-Debugging (TTD)
- 1.11.553 -> 1.11.567
1.2510.7001.0
Verbesserungen der Benutzeroberfläche und Benutzererfahrung
- Öffnen einer beliebigen Speicherfensterinstanz über das Menüband
Debugging und Leistungsverbesserungen
- Verhinderte das Stehlen von Rückrufen der Prozessinstrumentation, um die Zuverlässigkeit des Debuggings zu verbessern.
- Der Variablenverlauf für Time Travel Debugging (TTD) wurde durch eine Tabellenformateinstellung für eine bessere Datenvisualisierung erweitert
- Ein Absturz im Variablenverlauf bei der Wiederverwendung von Generatoren wurde behoben, indem ordnungsgemäße Funktionserfassungen sichergestellt wurden
- Erweiterter Evaluator für mehrdeutige Haltepunkte zur Handhabung komplexerer Debugging-Szenarien
- Leere Publisher-Spaltenanzeige für Store-Anwendungen und PLM-Prozesse wurde behoben
TTD- und Replay-API-Updates
- Der Befehl
!ttwurde aktualisiert, um eine einzeilige Hilfe und die aktuelle Position bereitzustellen, wenn er ohne Argumente aufgerufen wird, anstatt zum Anfang der Ablaufverfolgung zu wechseln - Verfügbarkeit des experimentellen REplay-API-SDKs für die externe Integration hinzugefügt
- Erweiterte Methoden des Datenmodells für den Variablenverlauf für einen verbesserten programmgesteuerten Zugriff
- Verschiedene TTD-Replay-Vorgangsoptimierungen und Verbesserungen der Rückrufunterstützung wurden behoben.
Fehlerbehebungen und Stabilität
- Fehlerberichterstattung behoben, bei der fälschlicherweise "Fehler: Der Vorgang wurde erfolgreich abgeschlossen" angezeigt wurde.
- Host-URL-Verarbeitungsprobleme in Fasttfgitview-Befehlen behoben
- Verbesserte Fehlermeldung zur Symbolauflösung, um klareres Feedback zu geben.
- Probleme beim Laden von PDBs für flach zugeordnete .NET-Assemblys unter Linux wurden behoben
- Behebung eines Fehlers beim uninitialisierten Lesezugriff in Debug-Komponenten
- Probleme bei der Dateisuche im Erweiterungskatalog mit kurzen Dateinamen wurden behoben.
1.2508.27001.0
Neue Funktionen
- Es wurde eine Option zum Deaktivieren der Grafikhardwarebeschleunigung für WinDbg hinzugefügt.
-
.AlternateFunctionsNeue Eigenschaft hinzugefügt für<frame>.Attributes.SourceInformation.
Fehlerbehebungen
- Es wurde ein Problem behoben, bei dem die Seite "Debuggen starten " nach dem Öffnen eines Dialogfelds nicht aktualisiert wurde.
- Es wurde ein Problem mit Registerkarten-Menüelementen behoben, die eine Verbindung zu Geräten herstellen, auf die die Benutzeroberflächenautomatisierung nicht zugreifen konnte.
- Es wurde ein Problem behoben, bei dem die nicht festgeschriebene Befehlseingabe verloren ging, wenn Sie den Befehlsverlauf durchsuchten.
- Die Handhabung des Mausrads wurde korrigiert, um einen reibungslosen Bildlauf zu gewährleisten (Mäuse mit glatten Rädern und Trackpads).
- Das irreführende rekursive Überspringen-Verhalten beim 32-Bit-x86-Debugging, wenn Funktionsprologe
__SEH_prolog4aufriefen, wurde behoben. - Ein Fehler in der
.AllowNugetExeUpdateKonfiguration für NuGet-basierte Erweiterungskataloge wurde behoben. - Ein Fehler beim Lesen von DWARFv5-Symbolen in
.debug_namesTabellen und Namensindizes wurde behoben. - Das Verhalten beim Hineinspringen für Quellzeilen mit mehreren schrittgefilterten Aufrufen wurde korrigiert.
- Der durch eine ungültige
natvisVersionszeichenfolge verursachte Absturz wurde behoben. - Die Übertragung von Umgebungsblöcken für
CreateProcessWbeim Remotedebugging wurde korrigiert. - Feste
!percpuund!allpercpuBefehle für CPU-Zeiger, die dynamisch überalloc_percpuden Linux-Kernel zugewiesen werden. - Ein Problem mit CPU-Nummerierungen in Linux-Kerneldebugsitzungen wurde behoben.
- Fehlende Funktionsbezeichnungen im Fenster Disassemblierung für Symbolziele ohne Programmdatenbank (PDB) wurden behoben.
- Die Behandlung von Platzhalterverschiebungen in ELF-Binärdateien wurde korrigiert.
- Ein Double-Free-Fehler bei der Behandlung von
DW_OP_fbregdurch DWARF-Symbole wurde behoben. - Eine Regression im Dump-Erfassungscode, die die Erfassung vollständiger Speicherabbilder für emulierte x64-on-ARM64-Prozesse verhinderte, wurde behoben.
Allgemeine Verbesserungen der Benutzeroberfläche
- Es wurden Verbesserungen daran vorgenommen, wie WinDbg die Fensterposition wiederherstellen kann, wenn Sie Monitore verschiedener Auflösungen ändern. WinDbg speichert und stellt nun angedockte Positionen wieder her.
- Horizontales Scrollen wurde implementiert, indem Sie das Mausrad verwenden, während Sie die Umschalttaste gedrückt halten.
- Die Auswahl "Ordner öffnen " wurde aktualisiert, um das moderne Dialogfeld zu verwenden.
1.2506.12002.0
Neue Funktionen
WinDbg wird jetzt mit den Konsolenmodusdebuggern ausgeliefert (cdb.exe / ntsd64.exe / kd.exe). Um die Binärdateien voneinander zu unterscheiden und vorhandene Kopien der Tools nicht zu stören, enthalten die Binärdateien den Architekturnamen:
- cdbARM64.exe / cdbX64.exe / cdbX86.exe
- kdARM64.exe / kdX64.exe / kdX86.exe
- ntsdARM64.exe / ntsdX64.exe / ntsdX86.exe
Weitere Features:
- Der Fenstertitel des Datenmodelltools kann über den
$OpenDmoToolwindowBefehl angepasst und auch über das Kontextmenü der Titelleiste geändert werden. - Neue Debuggereinstellung zum Aktivieren paralleler HTTP-Downloads von Symboldateien. Diese Option ist standardmäßig aktiviert.
Fehlerbehebungen
- Es wurde behoben, wie der Zielpfad für Dumpdateien gespeichert wird, die über die Befehlszeile (
-z) geöffnet wurden, damit Sie ihn erfolgreich über das Menü "Zuletzt verwendete Elemente " öffnen können. - Es wurde ein Absturz im Skript-Editor-Fenster behoben.
- Es wurde behoben, wie WinDbg inkonsistente Zeilenende in Quelldateien verarbeitet, die im Quellfenster geöffnet wurden, um eine konsistentere Ansicht der Quelldateien bereitzustellen.
- Es wurde ein Problem behoben, bei dem Anmeldeinformationen für HTTP-Symbolserver nicht erneuert wurden, wenn Sie das neue Feature für parallele Downloads verwenden.
- Es wurde ein Problem behoben, bei dem die Eigenschaften von Datenmodellobjekten in JavaScript-Erweiterungen nicht ordnungsgemäß aufgezählt wurden.
- Es wurde ein Problem behoben, bei dem Spaltentext beim Neuanordnen durch Ziehen verschwunden war.
- Es wurde ein Problem behoben, bei dem das Festlegen der Ereignisfilterung über Befehlszeilenoptionen nicht auf das Debugziel beim Start angewendet wurde.
- Es wurde ein Problem behoben, bei dem manchmal das Abdocken eines Toolfensters zu leeren Inhalten führte.
- Es wurde ein Problem behoben, bei dem minidumps von X64 emulierten Prozessen auf ARM64-Computern nicht gedebuggt werden konnten.
- Es wurde ein Problem behoben, bei dem zweideutige Haltepunkte den Debugger zum Absturz brachten.
- Es wurde ein Problem behoben, bei dem GDBServer beim Beenden des Prozesses beim Debuggen eines Live-Linux-Prozesses abstürzte.
- Es wurden mehrere Probleme im Zusammenhang mit dem Debuggen von JavaScript-Erweiterungen () behoben,
.scriptdebugeinschließlich einer besseren Aufzählung von Eigenschaften und behebung eines Absturzproblems.
Allgemeine Verbesserungen der Benutzeroberfläche
- Richtet das "Befehlsvorschlag"-Popupmenü am Cursor aus. Jetzt werden nur vorgeschlagene Vervollständigungsvorschläge anstelle von allem vor dem Cursor angezeigt.
- Dem Fehlerdialogfeld beim Öffnen des Debugziels wurden weitere Details hinzugefügt. Für Fehler beim Öffnen von Dumps wurde ein Link zu einer TSG-Datei bereitgestellt, die nicht geöffnet werden konnte.
- Die Titelleisten des Toolfensters haben dasselbe Kontextmenü wie ihre angedockte Registerkarte.
- Es wurden visuelle Verbesserungen an den Fenstern "Lokal", " Überwachung" und "Modell " vorgenommen.
- Das Time Travel Debugging (TTD) wurde auf Version 1.11.532 aktualisiert. Weitere Informationen finden Sie in den TTD-Versionshinweisen.
1.2502.25002.0
Neue Funktionen
Befehlsfenster IntelliSense
Die Eingabeaufforderung zeigt automatisch vorgeschlagene Vervollständigungen an, wenn das erste eingegebene Zeichen . (Punkt), ! (Ausrufezeichen) oder $ (Dollarzeichen) ist.
Vorschläge können auch mit der Befehlsverknüpfung STRG+LEERTASTE aufgerufen werden.
Momentaufnahmendebugging
Wenn WinDbg Liveprozesse lokal debuggt, kann es auch Momentaufnahmen des Prozesses erstellen. Verwenden Sie die Symbole auf der Registerkarte "Erweiterungen ", um zwischen Momentaufnahmen und dem Liveprozess zu wechseln.
Auf ähnliche Weise kann WinDbg an eine Prozessmomentaufnahme eines Prozesses angefügt werden, ohne ihn über eine snapshot:pid=<process pid in hex>-Protokollzeichenfolge in Connect to remote debugger anzuhalten.
Neue Datenmodell-APIs
Debugger.Utility.Symbols.GetTypeInformationGibt die Typinformationen zurück, die einem objekt zugeordnet sind, das übergeben wird. Ein optionales Argument ermöglicht die automatische Dereferenzierung (eine Ebene) von Zeigern, wenn Sie den Typ unter einem beliebigen Zeiger (oder einer Referenz) wünschen.
Debugger.Utility.Control.CreateStepFilter(<Type>, <Pattern>)Erstellt einen neuen Schrittfilter, der sich im Namespace neben allen APIs zur Haltepunkterstellung befindet.
Debugger.State.StepFiltersGibt die Liste der Schrittfilter zurück, die die Eigenschaften
Id,Description,Type,PatternundIsEnabled. Es gibt eine.Remove()Methode für Schrittfilterobjekte.
Verbesserte CLR-Debugerfahrung ohne clrcomposition.dll
Die weiterverteilbare Komponente dbgeng.dll verbessert die Stack-Walking-Unterstützung für Common Language Runtime (CLR)-Frames, ohne dass clrcomposition.dll vorhanden sein muss.
Zufällige Verbesserungen
- Verbesserte Unterstützung für das Linux-Kerneldebugging (insbesondere für 6.11+ Kernel).
- Unterstützung für komprimierte ZSTD-KDUMP-Seiten hinzugefügt.
Fehlerbehebungen
- Serverbetriebssystem (SOS) auf Version 9.0.557512 aktualisiert.
- Es wurde ein Leistungsrückschritt bei der Prüfung auf widerrufene Signaturen beim Laden der msdia140.dll behoben.
- Der Absturz beim Lesen des XSTATE-Kontexts wurde behoben.
- Die Hervorhebung deaktivierter Haltepunkte im Fenster Disassemblierung wurde korrigiert, um sie von einem aktivierten Haltepunkt zu unterscheiden.
- Ein Absturz beim Schließen eines schwebenden Toolfensters wurde behoben.
- Es wurde ein Problem behoben, bei dem die aktuelle Position des Fensters Zeitachsen nach dem Öffnen einer kürzlich verwendeten Ablaufverfolgung nicht immer ausgefüllt wurde.
- Es wurde ein Problem in den Fenstern "Disassembly " und "Memory " behoben, das nicht immer aktualisiert wurde, nachdem ein neuer Wert eingegeben wurde.
- Das Farbschema der Titelleiste im dunklen Design wurde korrigiert.
- Die Darstellung verzögerter Haltepunkte im Fenster Haltepunkte wurde korrigiert, in dem Speicherort
0x0anstelle des ursprünglichen Ausdrucks anzeigte, der bei der Erstellung eingegeben wurde. Es verfügt auch über ein eindeutiges Symbol, das angibt, dass es nicht gebunden ist. - Es wurde ein Problem in den Fenstern "Lokal" und " Überwachung " behoben, bei dem das Rechtsklick auf ein sichtbares Element dazu führte, dass die Ansicht nach oben verschoben wurde.
- Behobene Probleme mit
natvis. Weitere Informationen finden Sie im ursprünglichen Fehlerbericht. - Der
kd-Debugger-Spam mit der MeldungError getting port connector informationwurde behoben. Weitere Informationen finden Sie im ursprünglichen Fehlerbericht. - Ein Problem wurde behoben, bei dem
gcbedingte Haltepunkte auslöste, wenn die Bedingung falsch war. - Ein Problem wurde behoben, sodass YMM- und ZMM-Register jetzt angezeigt werden können, wenn Sie eine TTD-Ablaufverfolgung debuggen.
Korrekturen zur Barrierefreiheit
- Verbesserte Tastaturnavigation für die Fenster "Lokal", "Überwachung" und "Haltepunkte".
- Verbesserte visuelle Lesbarkeit des Menübands und der Fenster Locals, Watch und Breakpoints.
- Verbesserte Benutzerfreundlichkeit der Bildschirmsprachausgabe für die Fenster "Locals", "Watch" und "Breakpoints".
- Der vorherige Tastaturfokus, die Auswahl und der Bildlauf wurden nach Möglichkeit für die Bearbeitung von Elementen in den Fenstern Lokal, Überwachen und Haltepunkte beibehalten.
- Verbesserte allgemeine Unterstützung für die Windows-Textskalierung.
Allgemeine Verbesserungen der Benutzeroberfläche
- Es wurde ein Befehl hinzugefügt, um den Fokus von einem Befehlseingabetextfeld in einen Befehlsausgabebereich als Markierungsmodus umschalten (wie bei einer Eingabeaufforderung) zu verschieben. Die Tastenkombination ist STRG+M.
- Es wurde ein Kontextmenüelement "Gehe zur Disassemblierung" zum Fenster "Haltepunkte" hinzugefügt.
- Dem Fenster Disassemblierung wurde ein Kontextmenü für die Status Bis Anweisung ausführen, Anweisungszeiger festlegen, Gehe zu Quelle, Haltepunkt umschalten und Haltepunkt umschalten hinzugefügt.
Zeitreise-Debugging
- Aktualisiert auf Version 1.11.481.
- Weitere Informationen finden Sie in den TTD-Versionshinweisen.
1.2410.11001.0
Einschneidende Änderung
Jetzt wird dbghelp.dll dynamisch mit msdia140.dll verknüpft. Diese Änderung sollte sich nur auf Tools auswirken, die dbghelp.dll weitervertreiben, ohne gleichzeitig msdia140.dll einzuschließen. NuGet-Pakete, die dbghelp.dll enthalten, enthalten auch msdia140.dll.
Fehlerbehebungen
- Es wurde ein Problem behoben, bei dem die Funktionsaliase der Erweiterungsgalerie nicht an die Ladetrigger gebunden waren.
- Es wurde ein Problem behoben, bei dem der Symbolspeicher bei Erhalt eines
ERROR_INTERNET_SECURITY_CHANNEL-Fehlers nicht mehr funktionslos ist. - Es wurde ein Problem behoben, bei dem der Backslash im Befehlsfenster bei nicht-englischen Tastaturlayouts nicht eingegeben werden konnte.
- Es wurde ein Problem behoben, bei dem das Bearbeitungstextfeld in den Fenstern "Lokal", " Überwachung" und "Haltepunkte " nicht zum Cursor scrollen konnte, als der Text länger war als die Spalte, in der er gehostet wurde.
- *.dmp (einzelner Punkt) wurde gegenüber *.*.dmp (doppelte Punkte) für CAB- oder ZIP-Dumps priorisiert.
Korrekturen zur Barrierefreiheit
- Die Größenänderung von Spalten über die Tastatur für die Fenster Lokal und Überwachen wurde korrigiert.
- Verbesserte Tastaturnavigation in WinDbgX.
1.2409.17001.0
Korrekturen zur Barrierefreiheit
Mehrere Probleme wurden bei der Interaktion mit WinDbg unter Verwendung einer Bildschirmlesesoftware behoben.
Fehlerbehebungen
- Ein Problem wurde behoben, bei dem die Deinstallation von WinDbgX das Öffnen von WinDbg (Classic) verhinderte.
- Es wurde ein Problem behoben, bei dem die Größe von WinDbgX nach dem Erscheinen während des Öffnens geändert wurde.
Zeitreise-Debugging
- Auf Version 1.11.429 aktualisiert.
- Weitere Informationen finden Sie in den TTD-Versionshinweisen.
1.2407.24003.0
Neue Funktionen
Neuer JavaScript-Skriptanbieter
Wir versenden nun einen neuen abwärtskompatiblen JavaScript-Anbieter, der auf V8 basiert. Daher können ARM64-Hosts jetzt JavaScript-Erweiterungen verwenden. Die ARM64-Benutzeroberfläche ist jetzt auch standardmäßig auf das ARM64-Modul festgelegt.
Der neue Anbieter ist standardmäßig für alle Architekturen aktiviert. Auf x86 und x64 kann es über die Befehle .veighton und .veightoff ein- oder ausgeschaltet werden. In Zukunft planen wir, diese Befehle und den älteren JavaScript-Anbieter zu entfernen.
Erweiterbarkeit der Benutzeroberfläche über den Erweiterungskatalog und das Datenmodell
Debuggererweiterungen mit Erweiterungskatalogmanifesten können jetzt Symbole zur neuen Registerkarte "Erweiterungen " im Menüband "WinDbg" hinzufügen. Wenn Sie diese Symbole auswählen, wird eine Visualisierung einer bestimmten Datenmodellabfrage ausgelöst. Die Erweiterbarkeit wird durch Hinzufügen von Ansichten zum Erweiterungskatalogmanifest erreicht. Eine Ansicht bindet eine Kopplung eines Namens und eines Symbols an eine Datenmodellabfrage und Ansichtsart. Die Dokumentation finden Sie unter Manifest-Dokumentation der Erweiterungsgalerie.
Ausnahmeparameter zum Ausnahmeladetrigger der Erweiterungsgalerie hinzugefügt
Eine Katalogerweiterung kann jetzt basierend auf bestimmten Ausnahmeparameterwerten bedingt geladen werden. Weitere Informationen finden Sie in der Dokumentation zum Erweiterungsgalerie-Manifest.
Konfigurationsoption, um niemals bestimmte Symbole herunterzuladen
Sie können jetzt das Herunterladen von Symbolen für angegebene Bilder überspringen.
Symbols Im Abschnitt Ihrer DbgX.xml Konfigurationsdatei können Sie eine Liste von Symbolen hinzufügen:
<Namespace Name="DisabledSymbolsDownload">
<Setting Name="MSEdge.dll" Type="VT_BSTR" Value=""></Setting>
</Namespace>
Im Debugger können Sie ausführen dx Debugger.Settings.Symbols.DisabledSymbolsDownload , um die aktuelle Liste der Symbole anzuzeigen, die nicht heruntergeladen werden.
Sie können die Liste auch direkt aus dem Debugger ändern:
dx @$curprocess.Modules[1].DisableSymbolDownload()
dx @$curprocess.Modules[1].EnableSymbolDownload()
Neuer Befehl zum Anzeigen von SourceLink-Informationen
Um das Debuggen von Problemen beim Herunterladen von Quellen basierend auf dem eingebetteten SourceLink zu unterstützen, können Sie nun den Befehl !lmsourcesinfo module verwenden, um den Inhalt von SourceLink, den der Debugger verwendet, anzuzeigen.
Allgemeine Verbesserungen der Benutzeroberfläche
Kleine Verbesserungen an Fenstern wie den Modul- und Stapel-Fenstern vorgenommen.
- Die Kopfzeilenspalte wird zum Sortieren von Rasteransichten verwendet.
- Weitere Rechtsklickaktionen sind verfügbar.
- Das Fenster Stapel zeigt Frames bei Bedarf als inline an.
Fehlerbehebungen
- Es wurde ein Problem behoben, bei dem PDBs, die größer als 4 GB sind, nicht über HTTP heruntergeladen wurden. Edge ist ein Beispiel für einen solchen PDB.
- Wir haben ein Problem mit dem Zwischenspeichern im Anbieter für Debugger-Anmeldeinformationen behoben. (Jetzt werden Anmeldeinformationen pro Website zwischengespeichert.)
- Fehler bei der Auswertung der Ladetrigger der Erweiterungsgalerie wurden behoben.
- Ein Fehler wurde behoben, mit
!addressdem ein Absturz verursacht werden konnte. - Fehler in
!heap -a -abehoben, sodass es jetzt funktioniert.
TTD
Weitere Informationen finden Sie in den TTD-Versionshinweisen für Version 1.11.410.
1.2402.24001.0
Neue Funktionen
Live Linux-Debugging
Sie können jetzt einen Linux-Prozess live debuggen. Weitere Informationen finden Sie in den folgenden Artikeln:
Für die vorhersehbare Zukunft erfordert der WinDbg-Client Windows, da WinDbg nicht unter Linux ausgeführt wird.
Aufzeichnen einer Teilmenge der Ausführung mit Time Travel Debugging
Sie können nun eine Liste von Modulen angeben, die erfasst werden sollen, um TTD auf die Module zu konzentrieren, die Sie interessieren. Diese Funktionalität kann den Aufzeichnungsaufwand verringern. Wählen Sie zum Verwenden im Dialogfeld "Konfigurieren und Aufzeichnen " die Option "Teilmenge der Ausführung aufzeichnen" aus. Geben Sie dann die Module an, die aufgezeichnet werden sollen. (Weitere Informationen finden Sie unter "Bekannte Probleme".)
Zur feineren Kontrolle können Sie Ihr Programm genau aufzeichnen, indem Sie eine neue In-Process-Aufzeichnungs-API verwenden. Informationen zum Aufzeichnen Ihres Programms finden Sie in unserem Beispielcode und in der Dokumentation.
Kompaktes Registerfenster
Das neue Registerfenster sieht wie die Ausgabe des r Befehls aus. Das Bearbeiten aus dem neuen Registerfenster wird noch nicht unterstützt.
Neue Parameter für e-Befehle (Werte eingeben) in Speicherbefehle
Die Speicherbefehle e (Werte eingeben) unterstützen jetzt physische Adressen wie die Speicherbefehle d (Speicher anzeigen). Diese Optionen werden nur im Kernelmodus unterstützt.
| Option | Beschreibung |
|---|---|
/p |
Verwendet physikalische Speicheradressen für die Anzeige. Der durch Bereich angegebene Bereich wird aus dem physischen Speicher und nicht aus dem virtuellen Speicher entnommen. |
/p[c] |
Identisch mit /pder Ausnahme, dass der zwischengespeicherte Speicher gelesen wird. Die eckigen Klammern um c müssen mit eingeschlossen werden. |
/p[uc] |
Identisch mit /p, außer dass nicht zwischengespeicherter Speicher gelesen wird. Die eckigen Klammern um uc müssen mit eingeschlossen werden. |
/p[wc] |
Identisch mit /p, mit der Ausnahme, dass Write-Combined-Speicher gelesen wird. Die eckigen Klammern um wc müssen mit eingeschlossen werden. |
Weitere Informationen finden Sie unter e, ea, eb, ed, eD, ef, ep, eq, eu, ew, eza (Werte eingeben).
Fehlerbehebungen
- Unterstützung von Rust-Namensentschlüsselung im Linux-Debugging hinzugefügt.
- Wir haben Verbesserungen am CLR-Debugging vorgenommen.
- Die Möglichkeit, CLR-Frames für das Durchlaufen von Stapeln im gemischten Modus zu erzwingen, wurde hinzugefügt.
- Die Einstellung
ForceMixedModeStackWalkerwurde zuconfig.xmloderDbgX.xmlhinzugefügt. - Hinzugefügt:
!forceclrmixedmodeunwindBefehl für einmalige Ermittlungen oder falls Sie die Konfigurationseinstellung nicht ändern können.
- Die Einstellung
- Die Möglichkeit, CLR-Frames für das Durchlaufen von Stapeln im gemischten Modus zu erzwingen, wurde hinzugefügt.
- Allgemeine Verbesserungen des CLR-Debuggings unter Linux.
- Es wurden mehrere Probleme in Bezug auf
LinuxKernel.jsund Prozessor spezifische Variablen behoben.- Der Befehl
!runqwurde zuLinuxKernel.jshinzugefügt, um die Kernel-Scheduler-Ausführungswarteschlangen pro CPU ausgeben zu können (ähnlich dem Befehlrunqdes Linux-Absturzdienstprogramms). - Verschiedene Befehle in
LinuxKernel.jswurden angepasst, um den Kerneländerungen gerecht zu werden. In neueren Kerneln verwendet der Timerbaum zwischengespeicherte RB-Knoten anstelle von ursprünglichen RB-Knoten. In neueren Kernel-Versionen wurde dieall_bdevs-Liste entfernt, sodass Blockgeräte jetzt vom Superblock aus durchlaufen werden (blockdev_superblock).
- Der Befehl
- Es wurden verschiedene
natvisKorrekturen vorgenommen, um mehr wie die neuesten Versionen von Visual Studio zu funktionieren. - Bevorzugt
sourcelinkim Vergleich zu veraltetensourceinfo.- Der Befehl
!lmsourcesinfo <module>wurde hinzugefügt, umsourcelink-Ströme aus PDBs anzuzeigen (um das Debugging von Problemen mitsourcelinkzu unterstützen).
- Der Befehl
Bekannte Probleme
Wenn Sie eine Liste von Modulen angeben, die mit TTD erfasst werden sollen, funktioniert die Angabe mehrerer Module in dieser Version nicht.
1.2308.2002.0
Es wurden viele Fehlerkorrekturen und kleine Verbesserungen vorgenommen.
1.2306.12001.0
Es wurden viele Fehlerkorrekturen und kleine Verbesserungen vorgenommen.
1.2303.30001.0
Hinweis
Der Debugger wurde von WinDbg Preview in WinDbg umbenannt.
Der ältere Debugger, der mit Debugtools für Windows veröffentlicht wurde, wird jetzt als WinDbg (Klassisch) bezeichnet.
Time Travel Debugging auf ARM64
WinDbg wird nativ auf ARM64 ausgeführt, und wir haben auch TTD systemeigener ARM64-Prozesse aktiviert. Sie können jetzt systemeigene ARM64-Prozesse (und x86- und ARM32-Prozesse) aufzeichnen und einfach debuggen, auch auf Ihrem x64-Computer. Die Unterstützung für x64- oder x64-fähige Prozesse (ARM64EC) auf ARM64-Geräten ist noch nicht verfügbar.
Insgesamt wurde auch die TTD-Leistung verbessert, wobei der Aufzeichnungsaufwand für Prozesse, die allgemeine SIMD-Anweisungen verwenden, erheblich reduziert wurde. Insgesamt wurden 65 neue Anweisungen optimiert, die von MMX bis SSE 4.2, AVX und AVX2 reichen.
Mehrdeutige Haltepunktauflösung
Mehrdeutige Haltepunkte ermöglichen dem Debugger das Setzen von Haltepunkten in bestimmten Szenarien, in denen ein Haltepunktausdruck an mehrere Stellen aufgelöst wird. Weitere Informationen finden Sie unter Mehrdeutige Haltepunktauflösung.
1.2107.13001.0
Regex-Suche
Die WinDbg Preview-Suche enthält jetzt die Option zum Suchen mithilfe regulärer Ausdrücke, die als regex bezeichnet werden. Wenn Sie "regex" im Fenster aktivieren möchten, das Sie durchsuchen möchten, wählen Sie STRG+F aus. Schalten Sie dann die Schaltfläche mit der Bezeichnung .* neben dem Suchfeld um.
Eingeschränkter Modus
Der eingeschränkte Modus ist eine optionale Einstellung, die den Typ der Debugsitzungen auf nur Remotedebuggingsitzungen und Dump-Dateien beschränken kann, die WinDbg Preview starten kann. Weitere Informationen finden Sie unter WinDbg: Eingeschränkter Modus.
Unterstützung von Schattenvariablen
In früheren Versionen löst WinDbg den Fehler "Mehrdeutiges Symbol" aus, wenn versucht wird, eine Variable auszuwerten (??) oder anzuzeigen (dx), die ihren Namen mit einer anderen Variablen im Gültigkeitsbereich teilt. WinDbg disambiguiert jetzt Variablen, die den gleichen Namen haben, indem @n an den Variablennamen angefügt wird. Beispiele sind foo@0 und foo@1
Diese Änderung wird auch im Fenster „Locals“ widergespiegelt. Bisher wurde nur die nächste Variable im Bereich angezeigt.
1.2104.13002.0
Intelligente Nummernauswahl und Suche
Ein bequemes Produktivitätsfeature von WinDbg Preview ist die Möglichkeit, Muster im Befehlsfenster zu erkennen. Um Muster zu erkennen, markieren Sie beliebigen Text, und alle anderen Instanzen dieses Texts werden hervorgehoben. Diese Hervorhebung ist nützlich, wenn Sie sich Speichermuster ansehen. Jetzt werden auch gleichwertige Zahlen in anderen Radixen hervorgehoben, unabhängig davon, wie die Zahl in hexadezimaler, dezimaler oder wissenschaftlicher Schreibweise formatiert ist. Weitere Informationen zu Nummerierungsschemas finden Sie untern (Set Number Base).
Beispiel:
Wenn Sie auswählen 0x000001e2fb3f6160, werden alle anderen Instanzen unabhängig vom Format hervorgehoben.
Dieses Feature funktioniert auch mit halb temporären Hervorhebungen. Drücken Sie STRG und doppelklicken Sie auf eine Zahl, um alle ihre Vorkommen hervorzuheben. Auf diese Weise können Sie mehrere wichtige Zahlen im gesamten Befehlsverlauf nachverfolgen. (Um die Hervorhebung zu löschen, wählen Sie STRG aus, und doppelklicken Sie erneut auf die Zahl.) Schließlich funktioniert dieses Feature auch, wenn Sie Zahlen durchsuchen, indem Sie STRG+F auswählen.
Erweiterter Quellcodezugriff
Der Quellpfadbefehl .srcpath, .lsrcpath (Set Source Path) wurde aktualisiert, um das neue Tag DebugInfoDeinzuschließen. Weitere Informationen finden Sie im erweiterten Quellcodezugriff.
Host- und Gastzustände von WOW-Prozessen im Datenmodell
Wenn Sie einen 32-Bit-WOW-Prozess aus einem 64-Bit-Kontext debuggen, können Sie jetzt sowohl auf den Host- als auch den Gaststatus innerhalb des Datenmodells zugreifen.
Beispiele des 32-Bit-Gastzustands:
dx @$curprocess.Environmentdx @$curthread.Environmentdx @$curthread.Stack
Beispiele für den 64-Bit-Hoststatus:
dx @$curprocess.NativeEnvironmentdx @$curthread.NativeEnvironmentdx @$curthread.NativeStack
Verbesserungen beim JavaScript-Debuggen
JavaScript, das in der Benutzeroberfläche geladen wurde, verwendet jetzt den .scriptdebug Befehl für das direkte Debuggen in der Konsole. Weitere Informationen finden Sie unter JavaScript-Debuggerskripting: JavaScript-Debugging.
Verbesserungen der Barrierefreiheit
Mit WinDbg Preview haben wir uns verpflichtet, einen Debugger zu erstellen, der für Ingenieure mit Behinderungen inklusive ist. Wir haben die folgenden Verbesserungen bei der Barrierefreiheit vorgenommen:
- Links im Fenster Befehl können jetzt über die Tastatur angeklickt werden (wählen Sie UMSCHALT+EINGABE).
- Verbesserte Tastaturnavigation im Hauptmenü.
- Verbesserte Tastaturnavigation im Menüband.
- Erhöhter Kontrast für UI-Elemente.
Neuer Datenzugriffstyp „Überschreiben“ für Time Travel Debugging
Time Travel Debugging stellt jetzt einen Datentyp für den Overwrite Datenzugriff bereit. Speicherabfragen wie dx $@cursession.TTD.Memory() z. B. verfügen jetzt über eine weitere Spalte, in der die alten Werte von Schreibvorgängen angezeigt werden.
Weitere Korrekturen, Verbesserungen und Updates
- Es wurde ein Feature hinzugefügt, um eine Problemumgehung für ein USB 3.1-Hardwareproblem automatisch zu erkennen und anzuwenden, wenn sowohl der Kerneldebugginghost als auch das Ziel USB 3.1-Controller sind.
- Eine neue Tastenkombination für die Benutzeroberfläche wurde hinzugefügt: STRG+UMSCHALT+Auswählen über einem DML-Link kopiert ihn in die Zwischenablage.
1.0.2007.01003
Zeitachsen-Lesezeichen
Setzen Sie Lesezeichen für wichtige Time Travel-Positionen in WinDbg, anstatt die Position manuell zu kopieren und in Editor einzufügen. Lesezeichen erleichtern es, verschiedene Positionen in der Ablaufverfolgung relativ zu anderen Ereignissen auf einen Blick anzuzeigen und zu kommentieren.
Sie können einen beschreibenden Namen für Lesezeichen vergeben.
Greifen Sie auf Lesezeichen über das "Zeitachsen"-Fenster zu, das unter Ansicht>Zeitleiste verfügbar ist. Wenn Sie mit dem Mauszeiger auf eine Textmarke zeigen, wird der Name der Textmarke angezeigt.
Sie können das Lesezeichen auswählen und halten (oder mit der rechten Maustaste darauf klicken), um zu dieser Position zu gelangen, die Textmarke umzubenennen oder zu löschen.
Modulfenster
In einem neuen Fenster werden Module und die zugehörigen Informationen angezeigt, die über das Menüband "Ansicht" verfügbar sind. Das Fenster "Module" zeigt Folgendes:
- Der Name des Moduls, einschließlich der Pfadangabe.
- Die Größe in Byte des geladenen Moduls.
- Die Basisadresse, an der das Modul geladen wird.
- Die Dateiversion.
Threadnamen/Beschreibungen, die im Livedebugging verfügbar sind
Threadnamen, die von SetThreadDescription festgelegt werden, sind jetzt in den Live-Benutzermodus beim Debuggen verfügbar. Threadnamen stehen mithilfe des ~ Befehls oder des Debuggerdatenmodells zur Verfügung.
0:000> ~
0 Id: 53a0.5ffc Suspend: 1 Teb: 000000b1`db1ed000 Unfrozen "Hello world!"
7 Id: 53a0.9114 Suspend: 1 Teb: 000000b1`db1ef000 Unfrozen
8 Id: 53a0.2cc4 Suspend: 1 Teb: 000000b1`db1f1000 Unfrozen
9 Id: 53a0.5c40 Suspend: 1 Teb: 000000b1`db1f3000 Unfrozen
0:000> dx @$curthread
@$curthread : ConsoleTestApp!ILT+25(mainCRTStartup) (00007ff7`fac7101e) [Switch To]
Id : 0x5ffc
Name : Hello world!
Stack
Registers
Environment
Portable PDB-Unterstützung
Portable PDB-Unterstützung wurde hinzugefügt. Das PDB-Format beschreibt eine Codierung von Debuginformationen, die von Compilern von CLI-Sprachen erstellt und von Debuggern und anderen Tools verwendet werden. Weitere Informationen finden Sie unter Portable PDB-Symbole.
Andere Änderungen und Fehlerbehebungen
- Unterstützung für das Debuggen von AMD64- und Linux-Kerneldumps für WinDbg bereitgestellt.
- Verbesserungen bei der Time Travel-Aufzeichnung und andere Fehlerbehebungen vorgenommen.
1.0.1912.11001
- TTD-Zeitachsen: Ein neues Fenster zeigt eine visuelle Darstellung wichtiger Ereignisse in Ihrer Ablaufverfolgung an: Ausnahmen, Haltepunkte, Funktionsaufrufe und Speicherzugriffe. Zeitachsen öffnen sich automatisch und zeigen Ausnahmen (sofern vorhanden) und Haltepunkte an. Weitere Informationen finden Sie unter WinDbg Preview: Timeline.
- Wechselt zu Standardfensterchrom: Das benutzerdefinierte Fensterchrom, das wir verwendet haben, verursachte einige Skalierungs- und Größenänderungen, sodass wir es jetzt entfernt haben.
- Dateimenü verbesserte Tastaturnavigation: Das Dateimenü ist einfacher, mit nur einer Tastatur zu navigieren.
Andere Änderungen und Fehlerbehebungen
- Deaktiviert die Fenster Stack und Locals, wenn das Target läuft, sodass "Unbestimmter Fehler" nicht angezeigt wird, wenn kein Target vorhanden ist.
- Dem Dialogfeld "Anfügen" wurde eine Spalte "Dienste" hinzugefügt, die Ihnen hilft, die ausgeführten Dienste leicht zu finden.
- Ein Fehler wurde behoben, der dazu führte, dass die Architekturerkennung nicht funktionierte, wenn Anwendungen mit Argumenten geöffnet werden.
- Verbesserte Disassemblierung für das Disassembly-Fenster wenn private Symbole geladen werden.
- Die Schaltfläche "JSProvider laden " wurde aus dem Skriptmenüband entfernt, da jsprovider.dll jetzt automatisch geladen wird.
1.0.1908.30002
- Verbesserungen an TTD-Aufrufenobjekten: Aufrufabfragen umfassen jetzt Parameternamen, Typen und Werte. Wenn Sie über Ablaufverfolgungen hinweg nach Funktionsaufrufen abfragen, können Sie vollständig typisierte Parameter und deren Werte abrufen. Diese Funktion erleichtert das Filtern von Ergebnissen nach Parametern.
- Unterstützung für Open Enclave: WinDbg Preview kann jetzt Open Enklave-Anwendungen debuggen. Weitere Informationen finden Sie unter Open Enclave Debugging).
- ELF-Kernabbilder: Zur Unterstützung von Open Enclave kann WinDbg ELF-Kernabbilder, Binärdateien und auch DWARF-Symbole öffnen (DWARF 5 wird derzeit nicht unterstützt) sowohl aus Enklaven als auch aus Linux-Anwendungen. Wenn Sie ein Kernabbild aus einer Nicht-Windows-Anwendung öffnen, sollten grundlegende Fenster und Befehle ordnungsgemäß funktionieren, aber die meisten Erweiterungen und Windows-spezifischen Befehle funktionieren nicht. ELF- und DWARF-Dateien werden von Symbolservern heruntergeladen, gemäß den in den SSQP-Schlüsselkonventionen definierten Schlüsselkonventionen. Enklaven sind das einzige unterstützte Szenario, aber wir freuen uns über das Öffnen anderer Linux-Core-Dumps.
- TTD-Dateiformatänderung: Ein Hauptupdate für das Dateiformat für TTD-Ablaufverfolgungen unterbricht die Vorwärtskompatibilität. Frühere Versionen von WinDbg Preview können keine Ablaufverfolgungen öffnen, die mit dieser und zukünftigen Versionen von WinDbg Preview aufgezeichnet wurden. Diese und zukünftige Versionen können sowohl neue als auch alte Ablaufverfolgungen öffnen.
Andere Änderungen
- TTD verwendet jetzt die 64-Bit-Engine für die Indizierung und die entsprechende Debugger-Engine-Bitness für Wiedergaben. Mögliche Speicherprobleme beim Indizieren und SOS-Probleme bei der Wiedergabe werden minimiert.
- Wird
dxohne Parameter ausgeführt, zeigt es jetzt den Stammnamespace zur einfacheren Durchsuchbarkeit an. - Das Menü "Einstellungen" verfügt jetzt über Optionen zum Ändern des Standardsymbols und des Quellcachespeicherorts.
- Die Unterstützung für die Aufnahme von AVX-512 (Aufzeichnung von AVX-512 führt zu einer größeren als normalen Verlangsamung) wird verbessert.
- Die Offlinelizenzierung ist aktiviert.
1.0.1905.12001
Verbesserungen bei der SymSetDiaSession-Fehlerminderung: Die Lösung zum Beheben des Fehlers durch Anwendungen, die DbgHelp in unseren Prozess einfügen, funktionierte in einigen Szenarien nicht. Wir haben verbesserungen daran vorgenommen und das Feedback zu diesem Fehler weiterhin überwacht.
Anpassung der Akzentfarbe: Häufig erfordern Szenarien, dass mehrere Instanzen von WinDbg geöffnet sind. Das Hin- und Herwechseln zwischen ihnen kann verwirrend sein und einige Zeit nehmen, um herauszufinden, welches die "richtige" ist. Wir haben die Möglichkeit hinzugefügt, die blaue Akzentfarbe zu ändern, um Sitzungen visuell zu unterscheiden und den Austausch zwischen ihnen zu erleichtern.
Wählen Sie das Menüband "Ansicht" aus, und wählen Sie im letzten Abschnitt eine Akzentfarbe aus. Wenn zukünftige Sitzungen aus kürzlich verwendeten Zielen geöffnet werden, bleibt die Akzentfarbe als Teil des Arbeitsbereichs des Ziels erhalten.
Verbesserungen bei der Quelltokenisierung: Das Quellfenster verfügt jetzt über grundlegende Unterstützung für die Tokenisierung von Rust-Quelldateien und C++ SEH __try/__except/__finally/__leave.
Coroutine-Verbesserungen: Wir haben die Unterstützung für lokale Coroutine-Variablen und bestimmte optimierte Variablen verbessert.
Standardsymbol- und Quellcacheeinstellung: Wir haben dem Menü "Einstellungen " unter " Debugeinstellungen " eine Option hinzugefügt, um den Cachespeicherort für Symbole zu ändern. Es gibt ein bekanntes Problem, dass das Leeren dieser Einstellung dazu führt, dass das Laden der Quelle fehlschlägt. Wir planen, eine Überprüfung hinzuzufügen, um zu verhindern, dass dieses Problem in einer zukünftigen Version auftritt.
-pv-Korrekturen: Wir haben einen Fehler behoben, der unter Umständen verhindert hat, dass
-pv(nicht invasives Anfügen) funktioniert.
1.0.1904.18001
- Behebung des SymSetDiaSession-Fehlers: Wir hatten Berichte über einen Fehler, der verhindert, dass WinDbg Preview in einigen Situationen geöffnet wird. Einige externe Anwendungen versuchen, eine Version von DbgHelp in unseren Prozess einzufügen, bevor wir sie laden. Einige von ihnen verwenden eine Version von DbgHelp mit fehlender Funktionalität, was diesen Fehler verursacht, wenn wir versuchen, diese Features zu verwenden. Wir haben einen Fix für dieses Problem hinzugefügt und planen, sie nachzuverfolgen, um festzustellen, ob es Szenarien gibt, in denen es noch auftritt.
- Schriftartsteuerelement: Wir haben Einstellungen zum Steuern der Schriftart und des Schriftgrads hinzugefügt. Es gibt zwei verschiedene Einstellungen: eine ist für Textfenster (monospace Fenster wie Disassembly, Source und Command) und eine für Toolfenster (z. B. Locals und Stack). Diese Optionen wirken sich nicht auf einige Bereiche aus. Wir planen, sie in Zukunft zu aktualisieren.
- Hervorhebungsverbesserungen: Die dauerhafte Hervorhebung von Text im Befehlsfenster hebt nun auch Text in den Fenstern "Quelle " und "Notizen" hervor .
- Verbesserungen beim Laden von Quellen: Wir haben geändert, wie das Laden von Quelldateien funktioniert. Früher, wenn Sie eine Quelldatei geöffnet haben, waren Engine-Vorgänge wie das Ausführen weiterer Befehle nicht möglich oder unvorhersehbar. Wir haben geändert, wo das Laden stattfindet, um eine bessere Parallelität und einen zuverlässigeren Abbruch von Vorgängen zum Öffnen von Quellen zu ermöglichen.
Andere Änderungen und Fehlerbehebungen
- Dem Kontextmenü des Fensters Quelle wurde Gehe zu Disassemblierung hinzugefügt.
- Im Fenster Disassemblierung wurde das Kontrollkästchen Aktueller Anweisung folgen hinzugefügt.
- Ein Fehler wurde behoben, der dazu führte, dass das Befehlsfenster langsam ausgeführt wurde, wenn große Textmengen ausgegeben werden.
- Die Tasten BILD-AUF und BILD-AB wurden so geändert, dass sie ähnlich wie in Visual Studio funktionieren.
- Nehmen Sie Änderungen vor, damit beim Öffnen einer ASM-Datei im Quellfenster jetzt grundlegende Kommentare, Zeichenfolgen und Direktiven hervorgehoben werden.
1.0.1812.12001
Diese Version enthält die folgenden Updates:
-
Debuggerdatenmodell C++-Header: Es gibt einen neuen C++-Header,
DbgModel.hder als Teil des Windows SDK zum Erweitern des Debuggerdatenmodells über C++ enthalten ist. Weitere Informationen finden Sie in der Übersicht über das Debuggerdatenmodell C++. Diese Version enthält eine neue Erweiterung, die dem Debuggerdatenmodell weitere FEATURES im API-Stil hinzufügt, auf die über dendxBefehl, JavaScript und den neuenDbgModel.hHeader zugegriffen werden kann. Diese Erweiterung erweitert das Datenmodell um Kenntnisse zur Assembly- und Codeausführung über den Debugger.Utility.Code-Namespace und das lokale Dateisystem über den Debugger.Utility.FileSystem-Namespace. -
Erweiterung für synthetische Typen: Mit dieser neuen API-Erweiterung haben wir ein neues Beispiel auf unserem GitHub-Repository. Diese JavaScript-Erweiterung liest grundlegende C-Headerdateien und definiert synthetische Typinformationen für die im Header definierten Strukturen und Vereinigungen. Über den
dxBefehl kann der Speicher dann so strukturiert angezeigt werden, als hätten Sie einen PDB mit Typinformationen für diese Typen.
Andere Änderungen und Fehlerbehebungen
- WinDbg Preview behandelt das Holen von Quell-Fenstern oder des Fensters Disassemblierung in den Vordergrund beim schrittweisen Ausführen jetzt intelligenter.
- Der Titel des WinDbg Preview-Fensters wurde neu angeordnet, um wichtige Informationen zu Beginn beim Kerneldebugging zu erhalten.
- Der abwechselnde Hintergrundkontrast im Befehlsfenster sollte etwas spürbarer sein.
1.0.1810.2001
Diese Version enthält die folgenden Updates:
- Es wurde ein neues Dialogfeld "Einstellungen " hinzugefügt, auf das Sie über das Menü " Datei " oder das Menüband " Start " zugreifen können.
- Das Dialogfeld "Ereignisse und Ausnahmeneinstellungen" wurde hinzugefügt. In diesem Menü wird geändert, wie der Debugger mit Ereignissen und Ausnahmen umgeht, das entspricht den Befehlen des
sxoder dem Ereignisfilterdialog von WinDbg. Wählen Sie im Menüband "Start" die Option "Einstellungen" aus. Wählen Sie dann im linken Menü "Ereignisse und Ausnahmen " aus, um Ereignisse und Ausnahmen zu verwalten. - Der TTD-Indexer wurde mit einer besseren Leistung verbessert. Diese Verbesserung erhöht die Leistung der Indizierung von TTD-Ablaufverfolgungsdateien, wodurch der Indizierungsprozess (zwischen 2 mal und 10 Mal) schneller wird, während Indexdateien kleiner werden (~50% kleiner). Die Leistungsverbesserungen sind besonders bemerkbar bei Traces über 4 GB oder wenn Sie einen Computer mit 8 oder mehr CPU-Kernen verwenden. Der neue Indexer erleichtert das Debuggen großer Traces (50 GB+).
- Es wurde ein neues
debugArchStartflag zum Angeben der Architektur hinzugefügt. WinDbg Preview versucht, das Debuggermodul mit der richtigen Bitanzahl an das Ziel zu starten, um das Debuggen von verwaltetem Code besser zu unterstützen. Es gibt Umstände, unter denen die richtige Bitness nicht ermittelt werden kann, oder Sie möchten die Entscheidung möglicherweise überschreiben. Verwenden Sie-debugArchx86|amd64, um die Architektur des Debuggermoduls zu steuern.
Andere Änderungen und Fehlerbehebungen
- Ein Fehler wurde behoben, der schwarze Balken in einem Vollbilddebugger mit geöffnetem schwebendem Fenster verursachte.
- Ein Fehler wurde behoben, der dazu führte, dass Symboloptionen unbeabsichtigt gelöscht wurden.
- Der Befehlsverlauf bleibt jetzt beim Öffnen aus kürzlich verwendeten Zielen erhalten.
- Unterstützte Bearbeitung im Datenmodellfenster, in dem Sie jetzt Werte bearbeiten können.
- TTD-Ablaufverfolgungen wurden übersichtlicher gestaltet, da sie nicht indiziert sind.
- Verbesserte die Leistung des Locals-Fensters.
- Es wurde eine Schaltfläche im Menüband hinzugefügt, um die Protokolle des Befehlsfensters in einer Datei zu speichern.
- Zum Standardsatz von LINQ-Methoden wurde
. SelectMany(\<projection\>)hinzugefügt.
1.0.1807.11002
Diese Version enthält die folgenden Updates:
-
Automatisches Speichern und Laden von Haltepunkten: Dieser Schritt ist der erste Schritt zum Ersetzen von Arbeitsbereichen. Sie können jetzt Haltepunkte speichern und laden. Wenn Sie etwas starten, das Sie zuvor auf der Registerkarte Zuletzt verwendet im Menü Datei gedebuggt haben, werden jetzt die Haltepunkte aus dieser Sitzung geladen. Der Plan besteht darin, diese Funktionalität zu erweitern, um weitere Informationen über Sitzungen hinweg zu erhalten. Hardware-Breakpoints (
ba) und verschiedene andere Eigenschaften in Bezug auf Breakpoints wie thread- und prozessspezifische Kontexte und Bedingungen werden derzeit nicht gespeichert.
Kleinere Änderungen und Fehlerbehebungen
- Befehlszeilenoptionen
-x,-xe,-xd,-xn, und-xizum Steuern der Behandlung von Ausnahmen und Ereignissen hinzugefügt. Diese Befehlszeilenoptionen verhalten sich wie ihre Befehlsentsprechungen. - Unterstützung im Notizenfenster für Fett-, Unterstrichen- und Kursivformatierung hinzugefügt.
- Einige Zoom- und Bildlaufprobleme wurden behoben.
- Es wurde Unterstützung hinzugefügt, sodass durch die Auswahl von Text in den Fenstern Befehl, Speicher, Quelle oder Disassemblierung nun andere Instanzen des ausgewählten Texts hervorgehoben werden.
- Ein Fehler wurde behoben, bei dem das Unterbrechen des Symbolladevorgangs dazu führte, dass das Laden von Symbolen für die restliche Sitzung fehlschlug.
- Ein Fehler wurde behoben, sodass NatVis jetzt ordnungsgemäß neu geladen wird, wenn eine Sitzung neu gestartet wird.
1.0.1805.17002
Diese Version enthält die folgenden Updates:
Neues Fenster zum Zerlegen: Das Fenster umfasst jetzt:
- Beim Scrollen nach oben oder unten wird nun nach Möglichkeit kontinuierlich mehr Disassemblierung geladen.
- Die Hervorhebung wird verwendet, um die Syntax für Zahlen, Codeadressen und Vorgangscodes zu identifizieren.
- Wenn Sie ein Codesymbol auswählen, springt das Disassemblierungsfenster an diese Position.
- Wenn Sie mit der Maus auf Zahlen zeigen, wird eine QuickInfo angezeigt, die diese Zahl in andere Basen konvertiert.
- Die Verwendung von Kopfzeilen bedeutet den Anfang einer Funktion.
Schnelleres Quellfenster: Das Quellfenster wurde aktualisiert, um schneller und ressourceneffizienter zu sein.
Kleinere Änderungen und Fehlerbehebungen
- Es wurden Probleme beim Zwischenspeichern von Symbolen behoben.
- Einige Fälle wurden behoben, in denen das Umschalten der anfänglichen Unterbrechung nicht verwendbar war, wenn das Ziel nicht unterbrochen war.
- Es wurde Unterstützung hinzugefügt, sodass der Cursor jetzt im Eingabefeld bleibt, wenn Sie im Fenster Befehl eine Registerkarte auswählen, auf der nichts verfügbar ist.
- Unterstützung hinzugefügt, sodass WinDbg Preview jetzt die Bitanzahl automatisch erkennt, wenn es CAB-Dateien öffnet.
1.0.1804.18003
Diese Version enthält die folgenden Updates:
Verbesserungen bei Symbolstatus und Abbruch: Manchmal zeigt der Debugger beim Laden von Symbolen BESCHÄFTIGT an, und es ist schwierig zu bestimmen, was er tut und warum, ohne dass
!symnoisy aktiviert ist. Wir haben WinDbg Preview aktualisiert, um eine bessere Kommunikation darüber zu erhalten, was beim Laden von Symbolen geschieht, um Probleme zu beheben.Zusätzlich zu Änderungen, mit denen Sie sehen können, was passiert, haben wir auch einige Änderungen vorgenommen, die das Abbrechen von Symbolen zuverlässiger machen. Das Logs-Fenster enthält einige der Details, die normalerweise angezeigt werden, wenn
!symlaut aktiviert ist. Wenn Sie auf Ansicht>Protokolle klicken, erhalten Sie das vollständige laute Symbol, das die Ausgabe lädt, ohne sie einschalten zu müssen, und versuchen, die Symbole neu zu laden.Experimentelles Notizenfenster: WinDbg Preview verfügt jetzt über ein Fenster zum Erstellen von Notizen. Wählen Sie Ansicht>Notizen aus, um es zu öffnen. Wenn Sie sie kopieren/einfügen, bleiben DML-Links erhalten und funktionieren weiterhin so, als ob es sich um das Befehlsfenster handelt. Sie können Notizendateien auch im Menüband " Notizen " speichern und laden, wenn das Fenster geöffnet ist.
Experimentelles schnelleres Quellfenster: Um die Leistung von WinDbg Preview zu verbessern, ist ein experimentelles neues Quellfenster effizienter. Es gibt einige Lücken bei Kontextmenüs und Syntaxheraushebungen, aber wir möchten jedem die Möglichkeit geben, es auszuprobieren, bevor wir es fertig stellen, um uns frühzeitig Feedback zu geben. Führen Sie
$UseFastSourceWindowaus, um es zu verwenden. Wenn Sie zum alten zurückkehren möchten, führen Sie den Befehl aus$UseMonacoSourceWindow. Die Einstellung wird über Sitzungen hinweg beibehalten. Sie müssen Quellfenster schließen und erneut öffnen, um die neue Version zu erhalten.JSProvider API Version 1.2: Für JavaScript-Erweiterungen, die unterstützung für API Version 1.2 deklarieren:
- Jedes Objekt mit einer
.compareToMethode, die das Skript beendet, verfügt über einen benutzerdefinierten Vergleich. (Vergleichsoperatoren funktionieren in der DX-Auswertung und an anderer Stelle. Ein Beispiel istIModelObject::Compare.) - Jedes Objekt mit einer
.equalsMethode, die das Skript verlässt, verfügt über einen benutzerdefinierten Gleichheitsoperator. Die Operatoren==und!=funktionieren im DX Evaluator und an anderer Stelle. Ein Beispiel istIModelObject::IsEqualTo. - Systemeigene oder Datenmodellobjekte, die in das Skript eingehen, sind mit
.compareTound.equalsversehen, was den Zugriff auf benutzerdefinierte Vergleichsimplementierungen oder benutzerdefinierte Gleichheitsimplementierungen ermöglicht.
- Jedes Objekt mit einer
Kleinere Änderungen und Fehlerbehebungen
- Unterstützung hinzugefügt, sodass
.serverjetzt zur einfacheren Verwendung ein vollqualifizierter Domänenname aufgelistet ist, wenn es Domänenprobleme bei Kurznamen gibt. - Unterstützung hinzugefügt, damit STRG+G jetzt im Quellfenster funktioniert.
- Dem Fenster "Disassembly" wurde eine Adressleiste hinzugefügt.
- Unterstützung hinzugefügt, damit WinDbg Preview
_NT_SYMBOL_PATHerwartungsgemäß behandelt. -
-serverDie Befehlszeilenoption wurde hinzugefügt. - Unterstützung hinzugefügt, sodass TTD-Datenmodellabfragen jetzt schrittweise angezeigt werden. Wenn Sie ihn unterbrechen, werden weiterhin einige Ergebnisse angezeigt. Dieses Feature ist experimentell und optional. Führen Sie
dx $@cursession.TTD.AsyncQueryEnabled = 1für die Aktivierung aus. - Unterstützung hinzugefügt, sodass der
dpsBefehl jetzt Links zu den Quelldateien enthält, auf die er verweist.
1.1801.19001.0
Diese Version enthält die folgenden Updates:
- Textmarkierung: Jetzt können Sie alle Instanzen von markiertem Text direkt im Debugger hervorheben. Wenn Sie dieses Feature verwenden möchten, wählen Sie im Befehlsfenster Text aus, und wählen Sie dann im Menüband "Befehl" die Option "Hervorheben" aus. Sie können auch STRG+ALT+H auswählen. Wenn Sie eine dieser Optionen für bereits hervorgehobenen Text verwenden, wird die Hervorhebung entfernt.
Wenn Sie Befehle verwenden möchten, können Sie den $hl Befehl verwenden:
$hl ["someValueHere"]: Hervorhebung gibt Text an (oder wenn bereits hervorgehoben).
$hl clearAll: Alle hervorgehobenen Einträge löschen.
$hl caseSensitive [1|0]: Festlegen, ob der Hervorhebungsabgleich Groß- und Kleinschreibung berücksichtigt oder nicht ist. (In der Standardeinstellung wird die Groß- und Kleinschreibung nicht berücksichtigt.)
Diese Version enthält auch einige kleinere Fehlerbehebungen.
1.1712.15003.0
Diese Version enthält die folgenden Updates:
TTD-Speicherabfragen: Sie können TTD jetzt für Speicherzugriffe abfragen, ähnlich wie derzeit nach Aufrufen abgefragt wird. Jetzt finden Sie alle Lese-, Schreib- und Ausführungsvorgänge, die auf einen bestimmten Speicherbereich zugreifen.
-
Beispiel für Lese- und Schreibzugriff:
dx $@cursession.TTD.Memory(startAddress, endAddress, "rw") -
Eindeutiges Ausführungsbeispiel:
dx $@cursession.TTD.Memory(startAddress, endAddress, "ec")
-
Beispiel für Lese- und Schreibzugriff:
Einstellungsänderungen: WinDbg Preview speichert jetzt automatisch Einstellungen zwischen Sitzungen, einschließlich Ihres Symbolpfads und Quellpfads.
JavaScript-Verbesserungen
- Die 64-Bit-Zahlen in JavaScript enthalten nun eine Modul-Methode, die eine echte 64-Bit-Modulo-Operation ermöglicht.
- In JavaScript definierte Objekte können jetzt einen benutzerdefinierten vergleichbaren oder gerechten Begriff implementieren. Die Funktionalität wird in
dxentweder mithilfe von C++-Standardoperatoren oder durch LINQ-Vorgänge erreicht. Um diese Funktionalität zu verwenden, muss das Skript iminitializeScriptArray deklarieren, das eine neue Version der Host-API unterstützt, indem ein Datensatznew host.apiVersionSupport(1, 2)eingefügt wird. Anschließend können Sie diese Funktionen in einer beliebigendxODER Datenmodellfenster-LINQ-Abfrage verwenden. Wenn die Methode.compareTo(other)implementiert, ist sie vergleichbar (Vergleichsoperatoren funktionieren indxund LINQ). Wenn die Methode einen negativen Wert zurückgibt, dannthis < other. Wenn die Methode null zurückgibt, dannthis == other. Wenn die Methode einen positiven Wert zurückgibt, dannthis > other. Wenn die Methode.equals(other)implementiert wird, ist es fair (==arbeitet indxund LINQ). Die Methode muss entweder "true" oder "false" zurückgeben.
Kleinere Änderungen und Fehlerbehebungen
- Es wurde ein Fehler behoben, bei dem die Fenster "Stack " und " Locals " während des Startdebuggings nicht funktionierten.
- Die Ausgabe von LM wurde aktualisiert, um
ProductVersionund ähnliche Felder genauer zu melden. - Die Step Out Back-Schaltfläche wurde während TTD-Sitzungen aktiviert.
- Ab der neuen Version wird
-lsrcpathunterstützt. - Die Kopfzeilen in den Fenstern "Lokal", " Überwachung" und " Modell " wurden behoben, sodass sie beim Scrollen nach unten nicht ausgeblendet werden.
- Unterstützung hinzugefügt, damit bei Verwendung von Alt+Tab zur Rückkehr zu WinDbg Preview die Cursorposition im Befehlsfenster ordnungsgemäß beibehalten wird.
- Für das Umschalten in den ausführlichen Modus wurde die Tastenkombination STRG+ALT+V hinzugefügt.
- Hinzugefügt wurde die Unterstützung, um das automatische Scrollen des Befehlsfensters zu deaktivieren. Halten Sie dazu die Registerkarte "Befehl" ausgewählt (oder klicken Sie mit der rechten Maustaste darauf) und wählen Sie Automatisches Scrollen deaktivieren aus.
- Unterstützung hinzugefügt, sodass Sie jetzt untergeordnete Prozesse über die erweiterte Startseite der ausführbaren Datei debuggen können.
1.0.14.0
Diese Version enthält die folgenden Updates:
- Verbesserte Prozessservererfahrung: Eine neue Benachrichtigung im Menü "Datei " zeigt an, mit welchem Prozessserver Sie verbunden sind und mit dem Sie interagieren. Im Rahmen dieser Änderungen bleibt die Prozessserververbindung beim Beenden einer Debugsitzung erhalten und kann im Menü Datei getrennt werden.
- Neue voreingestellte Layoutoptionen im Menüband "Ansicht": Im Menüband "Ansicht" ist eine neue Option "Layouts" verfügbar. Zurzeit gibt es drei Layouts: die Standardeinstellung, eine, die sich auf die Demontage konzentriert, und ein Minimum.
- Debugging-Menüband „Time Travel“: Ein erweitertes Menüband Time Travel wird angezeigt, wenn Sie eine TTD-Ablaufverfolgung debuggen.
-
Metadaten aus JavaScript-Skripts: JavaScript-Erweiterungen können jetzt Metadaten für Eigenschaften und andere Konstrukte zurückgeben. Die Erweiterung kann jetzt Hilfetexte bereitstellen, den Anzeigeradix für Werte angeben und vieles mehr. Metadaten werden bereitgestellt, indem ein Metadatendeskriptor auf ein Objekt entweder durch das Vorhandensein von
Symbol.metadataDescriptoroder durch einen expliziten Aufruf vonhost.metadata.defineMetadataplatziert wird. Funktionen, zurückgegebene Werte und andere Wertkontexte können Metadaten für ihren Wert überhost.metadata.valueWithMetadatabereitstellen. -
Aktualisierungen der JavaScript-API: Einige potenziell schwerwiegende Veränderungen auf Quellcode-Ebene wurden an den APIs innerhalb des JavaScript-Providers vorgenommen (einschließlich neuer projizierter Methoden und Eigenschaften von nativen Objekten). Vorhandene Erweiterungen sehen keine der potenziell unterbrechenden Änderungen, ohne anzugeben, dass sie eine neue Version der JsProvider-API unterstützen. Die Unterstützung für die neue API-Version wird angezeigt, indem ein
host.apiVersionSupportDatensatz in das Array aufgenommen wird, das voninitializeScriptzurückgegeben wird und die Unterstützung der Version 1.1 beansprucht.
Änderungen in API Version 1.1
- Die
host.getModuleSymbolFunktionenhost.getModuleTypegeben NULL zurück, wenn sie das Symbol nicht finden können, anstatt eine Ausnahme zu auslösen. - Alle systemeigenen Objekte weisen zusätzlich zu
.targetLocationdie Adresseigenschaft auf. Wenn das Objekt keine Adresse hat, wird beim Zugriff auf die Eigenschaft eine Ausnahme ausgelöst. - Alle systemeigenen Objekte verfügen über neue
.getObjectValueund.setObjectValueMethoden, um auf Eigenschaften für das Objekt zuzugreifen, was möglicherweise mit Namen in Konflikt stehen kann, die JavaScript im Objekt platziert (z. Baddress. ).
Weitere JavaScript-Änderungen
- JavaScript-Erweiterungen können nun Eigenschaften bei Datenmodellobjekten über
Object.definePropertyhinzufügen und mit dem Löschoperator entfernen. Das Hinzufügen oder Registrieren einer JavaScript-Klasse als übergeordnetes Modell oder Typsignatur ist weiterhin die bevorzugte Methode zum Bearbeiten des Objektmodells. - JavaScript-Erweiterungen können jetzt globale Variablen innerhalb von Modulen im Debugziel über eine neue
host.setModuleSymbolAPI ändern. - Alle mathematischen Funktionen, die sich auch im 64-Bit-Bibliothekstyp befinden (z. B.
.add,.subtract,.multiplyund.divide), sind auch in JavaScript-Zahlen vorhanden. - JavaScript-Funktionen und -Eigenschaften können jetzt Werte zurückgeben, die als Enumerationen über benutzerdefiniertes Marshaling verarbeitet werden. Eine Funktion oder ein Eigenschafts-Accessor kann
host.typeSystem.marshalAs(value, type…)zurückgeben, um ein solches benutzerdefiniertes Marshaling zu initiieren. - Der Haltepunktbefehl im Skriptdebugger kann nun zusätzlich zu Zeilen-/Spaltenpositionen auf Funktionsnamen umgebrochen werden.
- Typobjekte in JavaScript-Erweiterungen haben Zugriff auf das enthaltende Modul über die
.containingModuleEigenschaft.
Kleinere Änderungen und Fehlerbehebungen
- Die Formatierung von bedingten Menübandregisterkarten wurde behoben, um weniger verwirrend zu sein.
- Überarbeitete DML, um das Parsen strenger zu gestalten und die Leistung zu verbessern.
- Verschiedene Korrekturen an der Leistung und dem Verhalten von STRG+F durchgeführt.
- Es wurde eine Warnung hinzugefügt, wenn das Programm ohne erhöhte Berechtigungen ausgeführt wird, bevor Sie versuchen, TTD zu verwenden.
- Die Option zum Außerkraftsetzen der automatischen Zielbitheitserkennung wurde hinzugefügt.
- Deaktiviert verschiedene Datei-Menü- und Menübandoptionen, wenn sie nicht verwendet werden können (z. B. Los in einer Speicherabbilddatei).
Bekannte Probleme
SOS funktioniert nicht für x86-Ablaufverfolgungen.
1.0.13.0
Diese Version fügt time Travel Tracing hinzu. Mit Time Travel Debugging können Sie einen Prozess aufzeichnen und später sowohl vorwärts als auch rückwärts wiedergeben. TTD kann Ihnen helfen, Probleme einfacher zu debuggen, indem Sie Ihre Debuggersitzung "zurückspulen" können, anstatt das Problem reproduzieren zu müssen, bis Sie den Fehler gefunden haben. Weitere Informationen finden Sie unter Time Travel Debugging: Overview.
1.0.12.0
Diese Version war die erste Version von WinDbg Preview. Allgemeine Informationen zu den Features, die in WinDbg Preview verfügbar sind, finden Sie unter "Hauptfeatures von WinDbg".