Sdílet prostřednictvím


Poznámky k vydání

logo WinDbg s lupou, která kontroluje bity.

Tento článek obsahuje informace o novinkách ve WinDbg. Starší verze byly vydány jako WinDbg Preview.

Verze 1.2601.12001.0

Obecná vylepšení uživatelského rozhraní

  • Aktualizováno na .NET 10
  • Upgradované okno skriptu tak, aby používalo nejnovější editor Monaku (0.55.1)
  • Byla přidána tlačítka Zpět/Znovu na kartu Skript na pásu karet
  • Lepší fokus během navigace pomocí klávesnice mezi okny nástrojů
  • Opraveny menší problémy s posouváním a výběrem v disassembly okně.
  • Opravili jsme problém, kdy se v okně registrů zobrazovaly jiné hodnoty než příkaz register.
  • Opravili jsme několik problémů s vysokým rozlišením DPI.
  • Kontrola stáří ladicího programu a hlášení s upozorněním, pokud je příliš starý
  • Opravena chyba, která způsobovala chybové ukončení, když byl v okně Model při otevření prázdného dotazu vybrán režim grafu.
  • Implementovali protokoly odolné proti chybovému ukončení pro WinDbg.

Vylepšení modulu pro ladění

  • Vylepšený výkon vyhledávání názvů symbolů, které nejsou přítomny (zejména pro DWARF a další zásuvné moduly)
  • Přidání kontroly null u obslužných rutin OnTargetCompositionEvent
  • Povolené čtení masky značek ukazatelů

Ladění cestování časem (TTD)

  • TTD verze 1.11.567 –> 1.11.584
  • Několik vylepšení pro zvýšení výkonu a robustnosti indexování, včetně 5násobného zrychlení pro velké (100+ GB) soubory s trasami.
  • Byl opraven problém nahlášený zákazníkem: Přístup k TEB prostřednictvím registru segmentů s využitím 32bitových adres funguje. (1.11.572)
  • Přesnější volání kolem syscalls. (1.11.582)

Opravy chyb

  • Opravili jsme chyby 'nenalezena informace o typu' kvůli nesprávně zpracovaným složitým lokacím.
  • Vyřešeny problémy s ukončováním řádků v konzolovém debuggeru při přesměrování vstupů/výstupů a při práci s ne-Unicode znaky.
  • Oprava filtrování událostí CPR/EPR v Linuxu
  • Opraveny chybějící štítky funkcí v zobrazení demontáže pro Linux
  • Oprava rozlišení funkcí importu v Linuxových binárkách kompilovaných pomocí CET
  • Opravili jsme nevyřešené zarážky, které způsobovaly, že živé relace ladění v Linuxu se po načtení modulu staly nepoužitelnými.
  • Oprava místních proměnných vlákna, které se nedají zobrazit v Linuxu při připojení přes GDBServer
  • Opraveno selhání překrytí stránky obrázku ELF, když paměťová služba cílového systému neimplementuje podporu informací o paměti.
  • Opravené chybové ukončení variadických tiskových funkcí v debuggeru způsobené nesprávným použitím parametrů formátu
  • Oprava nekonzistence při zpracování typů long, unsigned long a wchar_t v operačních systémech typu UNIX (LLP64 vs. LP64)
  • Oprava zablokování při čekání na vlákno čištění během vypnutí ladicího programu

1.2511.21001.0

Nové funkce

  • Zdokonalený výběr souborů s rozšířeným zpracováním podle priority, které se nyní vztahuje na soubory a složky CAB, pro přesnější zacílení na soubory s výpisem paměti.
  • Vylepšené stahování souborů se symboly ELF, DWARF a Mach-O s rozšířeným protokolováním a zlepšenými stavovými zprávami
  • Proměnná prostředí DBGHELP_DIA_PATH nyní má přednost před aktuálně načtenými moduly pro lepší kontrolu zpracování symbolů.
  • Vylepšení indexování názvů členů pro lepší navigaci symbolů a výkon vyhledávání

Opravy chyb

  • Byl vyřešen problém, kdy zápisy paměti do aktivních cílů Linuxu selhávaly.
  • Oprava načítání a funkčnosti rozšíření DAC a SOS při připojení k cílům živého ladění.
  • Byl vyřešen problém, kdy se připojené spustitelné soubory procesu zobrazovaly jako imageXXXXXXXX místo skutečných názvů.
  • Opraven kód stahování v NuGet.exe, který byl narušen implementací záporné mezipaměti.
  • Oprava zpoždění uživatelského rozhraní při používání exdigdbsrv
  • Zpracování výjimek rozhraní WMI z kontroly kompatibility s rozhraním USB 3.1
  • Byla odstraněna nesprávná upozornění (C6518) z poznámek SAL ve wdbgexts.h.
  • Zobrazení informací o typech pro typy char16_t a char32_t na platformách Linux bylo opraveno.

Obecná vylepšení uživatelského rozhraní

  • Přidejte novou možnost Zjednodušený pás karet, která snižuje jeho výšku
  • Povolena akcelerace grafického hardwaru během relací protokolu RDP (Remote Desktop Protocol)
  • Vylepšený výkon obnovy v okně disassemblace
  • Oprava škálování DPI pro místní nabídky nástrojových oken v různých konfiguracích monitoru
  • Umožněno vybírání informací o verzi na stránce "O aplikaci" pro snadnější kopírování.
  • Odebrání podpory zastaralé technologie IDNA (Internationalized Domain Names in Applications)
  • Byl vyčištěn log debuggeru, aby byly vyloučeny počáteční záznamy spuštění aplikace z galerie rozšíření a dalších interních operací.

Ladění pomocí cestování časem (TTD)

  • 1.11.553 -> 1.11.567

1.2510.7001.0

Vylepšení uživatelského rozhraní a zkušeností

  • Otevření jakékoli instance okna paměti z pásu karet

Ladění a vylepšení výkonu

  • Zabránění krádeži zpětných volání instrumentace procesů za účelem zlepšení spolehlivosti ladění
  • Vylepšená historie proměnných ladění času (TTD) s preferencí tabulkového formátu pro lepší vizualizaci dat
  • Oprava chybového ukončení v historii proměnných při opakovaném spuštění generátorů zajištěním správného zachycení funkcí
  • Vylepšený vyhodnocovač pro nejasné body přerušení pro řešení složitějších ladících scénářů
  • Oprava prázdného zobrazení sloupce Publisheru pro ukládání aplikací a procesů PLM

Aktualizace rozhraní API pro TTD a přehrávání

  • Aktualizace !tt příkazu pro poskytnutí nápovědy na jednom řádku a aktuální pozici při zavolání bez argumentů místo přechodu na začátek trasování
  • Přidána experimentální dostupnost rozhraní Replay API SDK pro externí integraci
  • Vylepšené metody datového modelu historie proměnných pro vylepšený programový přístup
  • Oprava různých optimalizací operací přehrání TTD a vylepšení podpory zpětného volání

Opravy chyb a stabilita

  • Opravili jsme hlášení chyb, které nesprávně zobrazovaly chybu: Operace byla úspěšně dokončena.
  • Řešení problémů se zpracováním adres URL hostitele v příkazech fasttfgitview
  • Vylepšená chybová zpráva o rozlišení symbolů, která poskytuje jasnější zpětnou vazbu
  • Oprava problémů s načítáním souborů PDB pro plochá mapovaná sestavení .NET v Linuxu
  • Vyřešená neinicializovaná chyba čtení v komponentách ladění
  • Opraveny problémy s vyhledáváním souborů v galerii rozšíření při použití krátkých názvů souborů.

1.2508.27001.0

Nové funkce

  • Byla přidána možnost zakázat grafickou akceleraci hardwaru u WinDbg.
  • Byla přidána nová .AlternateFunctions vlastnost .<frame>.Attributes.SourceInformation

Opravy chyb

  • Opravili jsme problém, kdy se stránka Spustit ladění po otevření dialogového okna neaktualizuje.
  • Opravili jsme problém s položkami záložkové nabídky, které se připojovaly k zařízením, jež nebyla dostupná pro automatizaci uživatelského rozhraní.
  • Opravili jsme problém, kdy se při prozkoumání historie příkazů ztratil nepotvrzený vstup příkazu.
  • Pevná manipulace s kolečky myši pro správné hladké posouvání (myši s hladkými kolečky a trackpady).
  • Oprava zavádějícího rekurzivního chování krok-over v 32bitovém ladění x86 při vyvolání __SEH_prolog4funkce .
  • Opravili jsme chybu v .AllowNugetExeUpdate nastavení pro galerie rozšíření založených na NuGetu.
  • Opravili jsme chybu při čtení symbolů DWARFv5 kolem .debug_names tabulek a indexů názvů.
  • Opravili jsme chování při krokování u zdrojových řádků s více voláními filtrovanými kroky.
  • Opraven pád způsobený neplatným řetězcem verze natvis.
  • Pevný přenos bloku prostředí pro CreateProcessW vzdálené ladění.
  • Pevné !percpu a !allpercpu příkazy pro ukazatele procesoru se dynamicky přidělují prostřednictvím alloc_percpu jádra Linuxu.
  • Opravili jsme problém s číslováním procesoru v relacích ladění jádra Linuxu.
  • Opravili jsme chybějící popisky funkcí okna disassemblování pro cílové symboly, které nejsou v databázi PDB (programový databázový soubor).
  • Opravili jsme zpracování přemístění zástupných symbolů v binárních souborech ELF.
  • Opraveno dvojité uvolnění v manipulaci se symboly DWARF DW_OP_fbreg.
  • Oprava regrese v kódu kolekce výpisů paměti, která bránila úplné kolekci výpisů paměti pro emulované procesy x64-on-ARM64.

Obecná vylepšení uživatelského rozhraní

  • Vylepšili jsme, jak WinDbg obnoví umístění okna při změně monitorů různých rozlišení. WinDbg teď také ukládá a obnovuje přichycené pozice.
  • Proveďte vodorovné posouvání pomocí kolečka myši při podržení klávesy Shift.
  • Aktualizovali jsme nástroj pro výběr otevřených složek tak, aby používal moderní dialog.

1.2506.12002.0

Nové funkce

WinDbg se nyní dodává s ladicími programy v konzolovém režimu (cdb.exe / ntsd64.exe / kd.exe). Pokud chcete rozlišit binární soubory od sebe navzájem a nezasahovat do stávajících kopií nástrojů, binární soubory obsahují název architektury.

  • cdbARM64.exe / cdbX64.exe / cdbX86.exe
  • kdARM64.exe / kdX64.exe / kdX86.exe
  • ntsdARM64.exe / ntsdX64.exe / ntsdX86.exe

Další funkce:

  • Název okna nástroje datového modelu $OpenDmoToolwindow lze přizpůsobit pomocí příkazu $OpenDmoToolwindow a lze ho také změnit pomocí kontextové nabídky záhlaví.
  • Nové nastavení ladicího programu pro povolení paralelního stahování souborů symbolů HTTP Tato možnost je ve výchozím nastavení povolená.

Opravy chyb

  • Opravili jsme způsob ukládání cílové cesty pro soubory s výpisem otevřené přes příkazový řádek (-z), aby bylo možné je úspěšně otevřít z nabídky Poslední.
  • Opravili jsme chybu v okně Editor skriptů .
  • Opravili jsme, jak WinDbg zpracovává nekonzistentní konce řádků ve zdrojových souborech, které byly otevřeny v okně Zdroj , aby poskytovaly konzistentnější zobrazení zdrojových souborů.
  • Opravili jsme problém, kdy se přihlašovací údaje pro servery se symboly HTTP neobnovily při použití nové funkce paralelního stahování.
  • Opravili jsme problém, kdy vlastnosti objektů datového modelu nebyly v rozšířeních JavaScriptu správně vyčíslovány.
  • Opravili jsme problém, kdy text sloupce zmizel při přeuspořádání přetažením.
  • Opravili jsme problém, kdy nastavení filtrování událostí prostřednictvím možností příkazového řádku nebylo použito na cíl ladění při spuštění.
  • Opravili jsme problém, kdy se někdy při uvolnění okna nástroje projevil prázdný obsah.
  • Opravili jsme problém, kdy nebylo možné ladit minidumpy emulovaných procesů X64 na počítačích ARM64.
  • Opravili jsme problém, kdy nejednoznačné lámací body způsobovaly selhání ladicího programu.
  • Opravili jsme problém, kdy při ladění živého linuxového procesu došlo k chybovému ukončení GDBServeru při ukončení procesu.
  • Opravili jsme několik problémů souvisejících s laděním rozšíření JavaScriptu (.scriptdebugvčetně lepšího výčtu vlastností a opravili problém s chybovým ukončením).

Obecná vylepšení uživatelského rozhraní

  • Zarovnal vyskakovací okno návrhu příkazu ke kurzoru. Teď se zobrazí jenom navrhované dokončení místo všeho před kurzorem.
  • Poskytli jsme další podrobnosti k dialogovému oknu s chybovou zprávou ladicího cíle. V případě selhání otevření výpisu paměti byl poskytnut hypertextový odkaz na soubor TSG, který se nepodařilo otevřít.
  • Title bary okna nástrojů získaly stejnou kontextovou nabídku jako jejich ukotvené záložky.
  • Provedli jsme vizuální vylepšení oken Locals, Watch a Model.
  • Aktualizováno Time Travel Debugging (TTD) na verzi 1.11.532. Další informace najdete v poznámkách k verzi TTD.

1.2502.25002.0

Nové funkce

IntelliSense v příkazovém okně

Příkazový vstupní řádek automaticky zobrazí navrhované dokončování, když je . první zadaný znak (tečka), ! (bang) nebo $ (znak dolaru).

Návrhy lze vyvolat také pomocí klávesové zkratky Ctrl+mezerník.

Ladění snímků

Když WinDbg ladí živé procesy místně, může také pořizovat snímky procesu. Pokud chcete přepínat mezi snímky a živým procesem, použijte ikony na kartě Rozšíření .

Podobně může WinDbg připojit k snímku procesu, aniž by jej pozastavil, prostřednictvím snapshot:pid=<process pid in hex> řetězce protokolu v Connect to remote debugger.

Nová rozhraní API datového modelu

  • Debugger.Utility.Symbols.GetTypeInformation

    Vrátí informace o typu přidružené k libovolnému objektu předanému. Volitelný argument umožňuje automatické dereferencování (jedna úroveň) ukazatelů, pokud chcete typ pod libovolným ukazatelem (nebo odkazem).

  • Debugger.Utility.Control.CreateStepFilter(<Type>, <Pattern>)

    Vytvoří nový filtr kroků umístěný v oboru názvů vedle všech API pro vytváření breakpointů.

  • Debugger.State.StepFilters

    Vrátí seznam filtrů kroku, které mají vlastnosti Id, Description, Type, Patterna IsEnabled. Pro objekty filtru kroku existuje .Remove() metoda.

Vylepšené prostředí ladění CLR bez clrcomposition.dll

Redistribuovatelný komponent dbgeng.dll zlepšuje podporu procházení zásobníku pro rámce CLR (Common Language Runtime), aniž by bylo nutné, aby clrcomposition.dll byl přítomen.

Náhodná vylepšení

  • Vylepšená podpora ladění jádra Linuxu (zejména pro jádra 6.11 nebo novější).
  • Přidána podpora pro ZSTD komprimované stránky KDUMP.

Opravy chyb

  • Aktualizace serverového operačního systému (SOS) na verzi 9.0.557512
  • Opravili jsme regresi výkonu při kontrole odvolaných podpisů při načítání msdia140.dll.
  • Opravili jsme chybu při čtení kontextu XSTATE.
  • Opravili jsme zvýraznění deaktivovaných bodů přerušení v okně disasembleru, aby bylo snadno rozlišitelné od povolených bodů přerušení.
  • Opravili jsme pád při zavření plovoucího panelu nástrojů.
  • Opravili jsme problém, kdy se po otevření nedávného trasování ne vždy zobrazila současná pozice okna Časové osy.
  • Opravili jsme problém v oknech pro disassemblování a paměť, které se ne vždy aktualizovaly po zadání nové hodnoty.
  • Opravili jsme barevné schéma záhlaví v tmavém motivu.
  • Opravili jsme prezentaci odložených zarážek v okně Zarážky, kde místo Původně zadaného výrazu při jeho vytvoření zobrazovalo 0x0. Má také jedinečnou ikonu, která označuje, že není svázaná.
  • Opravili jsme problém v okně Místní hodnoty a sledovacím okně, kdy kliknutí pravým tlačítkem na viditelnou položku způsobilo posunutí zobrazení nahoru.
  • Opravili jsme problémy s natvis. Další informace najdete v původní zprávě o chybě.
  • Byl odstraněn spam v ladicím programu se zprávou kd. Další informace najdete v původní zprávě o chybě.
  • Opravili jsme problém, kdy gc aktivovala podmíněné zarážky, když byla podmínka nesplněna.
  • Opravili jsme problém, aby bylo možné při ladění trasování TTD nyní zobrazit registry YMM a ZMM.

Opravy přístupnosti

  • Vylepšená navigace pomocí klávesnice pro okna Místní, Výrazů a Body přerušení
  • Vylepšili jsme vizuální čitelnost pásu s nástroji a oken Místní proměnné, Sledování a Přerušení.
  • Vylepšili jsme použitelnost čtečky obrazovky pro okna Místní hodnoty, Kukátku a Zarážky .
  • Pokud je to možné, zachovat předchozí fokus klávesnice, výběr a rolování pro úpravy položek v oknech Lokály, Watch a Zarážky.
  • Vylepšená obecná podpora škálování textu ve Windows

Obecná vylepšení uživatelského rozhraní

  • Byl přidán příkaz pro přesunutí fokusu z textového pole pro zadání příkazu do podokna výstupu příkazu v režimu Přepnout značku (podobně jako v příkazovém řádku). Klávesová zkratka je Ctrl+M.
  • Byla přidána položka místní nabídky Přejít na disassembláž do okna Body přerušení.
  • Byla přidána místní nabídka do okna Disassemblování pro Spustit k instrukci, Nastavit ukazatel instrukcí, Přejít na zdroj, Přepnout zarážku a Přepnout zarážku.

Ladění cesty času

1.2410.11001.0

Zásadní změna

Nyní dbghelp.dll dynamicky odkazuje na msdia140.dll. Tato změna by měla mít vliv pouze na nástroje, které redistribuují dbghelp.dll bez zahrnutí msdia140.dll. Balíčky NuGet, které zahrnují dbghelp.dll také zahrnují msdia140.dll.

Opravy chyb

  • Opravili jsme problém, kdy aliasy funkcí galerie rozšíření nebyly svázané s triggery načítání.
  • Opravili jsme problém, kdy úložiště symbolů zůstane funkční i při přijetí chyby ERROR_INTERNET_SECURITY_CHANNEL.
  • Opravili jsme problém, kdy nebylo možné v příkazovém okně zadat zpětné lomítko pro neanglické rozložení klávesnice.
  • Opravili jsme problém, kdy se textové pole pro úpravy v oknech Místní hodnoty, Kukátka a Zarážky neposunulo k pozici kurzoru, když byl text delší než sloupec, ve kterém se nacházel.
  • Upřednostněno *.dmp (jedno období) za *.*.dmp (dvojitá období) pro výpisy paměti CAB nebo ZIP.

Opravy přístupnosti

  • Upravili jsme změnu velikosti sloupců pomocí klávesnice pro okna Locals a Watch.
  • Vylepšená navigace pomocí klávesnice v systému WinDbgX

1.2409.17001.0

Opravy přístupnosti

Opravili jsme několik problémů při interakci s WinDbg pomocí čtečky obrazovky.

Opravy chyb

  • Opravili jsme problém, kdy odinstalace WinDbgX bránila otevření WinDbgg (Classic).
  • Opravili jsme problém, kdy se WinDbgX změnil na velikost po zobrazení během otevírání.

Ladění cesty času

1.2407.24003.0

Nové funkce

Nový zprostředkovatel skriptování JavaScriptu

Nyní dodáváme nového zpětně kompatibilního poskytovatele JavaScriptu založeného na verzi V8. Hostitelé ARM64 teď můžou používat rozšíření JavaScriptu. Uživatelské rozhraní ARM64 teď také standardně odkazuje na modul ARM64.

Ve všech architekturách je ve výchozím nastavení povolený nový zprostředkovatel. Na platformě x86 a x64 je možné ho zapnout nebo vypnout pomocí .veighton příkazů a .veightoff příkazů. V budoucnu plánujeme odebrat tyto příkazy a staršího poskytovatele JavaScriptu.

Rozšíření ladicího programu s manifesty z galerie rozšíření nyní mohou přidat ikony na novou kartu Rozšíření na pásu karet WinDbg. Výběrem těchto ikon se aktivuje vizualizace konkrétního dotazu datového modelu. Rozšiřitelnost se provádí přidáním zobrazení do manifestu galerie rozšíření. Zobrazení sváže spojení názvu a ikony s dotazem a druhem zobrazení datového modelu. Dokumentaci najdete v dokumentaci k manifestu galerie rozšíření.

Rozšíření galerie se teď dá podmíněně načíst na základě konkrétních hodnot parametrů výjimky. Další informace najdete v dokumentaci k manifestu galerie rozšíření.

Možnost konfigurace, která nikdy nestahuje konkrétní symboly

Teď můžete přeskočit stahování symbolů pro zadané obrázky.

Symbols V části konfiguračního souboru DbgX.xml můžete přidat seznam symbolů:

<Namespace Name="DisabledSymbolsDownload">
  <Setting Name="MSEdge.dll" Type="VT_BSTR" Value=""></Setting>
</Namespace>

V ladicím programu můžete spustit dx Debugger.Settings.Symbols.DisabledSymbolsDownload a zobrazit aktuální seznam symbolů, které nejsou stahovány.

Seznam můžete také změnit přímo z ladicího programu:

dx @$curprocess.Modules[1].DisableSymbolDownload()
dx @$curprocess.Modules[1].EnableSymbolDownload()

Pokud chcete pomoct s laděním problémů se stahováním zdrojů na základě vloženého SourceLink, můžete teď pomocí příkazu zobrazit obsah !lmsourcesinfo module, který ladicí program používá.

Obecná vylepšení uživatelského rozhraní

Provedli jsme malá vylepšení oken, jako jsou okna moduly a Stack:

  • Sloupec záhlaví slouží k řazení zobrazení mřížky.
  • K dispozici jsou další akce kliknutí pravým tlačítkem myši.
  • V okně Stack se v případě potřeby zobrazují rámce jako vložené.

Opravy chyb

  • Opravili jsme problém, kdy se PDB větší než 4 GB nedokázaly stáhnout přes HTTP. Edge je příkladem takového souboru PDB.
  • Opravili jsme problém s ukládáním do mezipaměti ve zprostředkovateli přihlašovacích údajů ladicího programu. (Teď ukládá přihlašovací údaje na web.)
  • Opravili jsme chyby při vyhodnocování triggerů načítání galerie rozšíření.
  • Opravili jsme chybu s !address, která mohla způsobit pád aplikace.
  • Opravili jsme !heap -a -a to, aby teď fungovalo.

Transakční termín dodání (TTD)

Viz poznámky k vydání TTD pro verzi 1.11.410.

1.2402.24001.0

Nové funkce

Živé ladění Linuxu

Teď můžete ladit proces Linuxu živě. Další informace najdete v těchto článcích:

V dohledné budoucnosti vyžaduje klient WinDbg Windows, protože WinDbg neběží v Linuxu.

Zaznamenat podmnožinu spuštění pomocí ladění časového cestování

Teď můžete zadat seznam modulů, které se mají zaznamenávat, abyste se mohli zaměřit na TTD na moduly, o které vám záleží. Tato funkce může snížit režii na nahrávání. Pokud ho chcete použít, vyberte v dialogovém okně Konfigurace a záznam, Zaznamenat podmnožinu provedení. Pak zadejte moduly, které chcete zaznamenat. (Další informace najdete v tématu Známé problémy.)

Pro jemné ovládání můžete program přesně nahrát pomocí nového rozhraní API pro nahrávání v procesu. Informace o záznamu programu najdete v našem ukázkovém kódu a dokumentaci.

Kompaktní okno registru

Nové okno registru vypadá jako výstup příkazu r . Úpravy z nového okna registrace se zatím nepodporují.

Nové parametry pro příkazy e (Zadat hodnoty) do paměti

Příkazy e (Enter Values) do paměti teď podporují fyzické adresy stejně jako příkazy d (Display Memory). Tyto možnosti jsou podporovány pouze v režimu jádra.

Možnost Popis
/p Používá adresy fyzické paměti pro displej. Rozsah určený rozsahem je převzat z fyzické paměti, nikoli z virtuální paměti.
/p[c] Stejné jako s tím rozdílem /p, že paměť uložená v mezipaměti je přečtená. Hranaté závorky kolem c musí být zahrnuty.
/p[uc] Stejné jako /p, s výjimkou toho, že je přečtená necacheovaná paměť. Hranaté závorky kolem uc musí být zahrnuty.
/p[wc] Stejné jako /p, s výjimkou toho, že zapisovaná kombinovaná paměť je přečtená. Hranaté závorky kolem wc musí být zahrnuty.

Další informace najdete v tématu e, ea, eb, ed, eD, ef, ep, eq, eu, ew, eza (Zadejte hodnoty).

Opravy chyb

  • Byla přidána podpora pro demangling názvů pro Rust při ladění na Linuxu.
  • Vylepšili jsme ladění CLR:
    • Přidali jsme možnost vynutit procházení snímků CLR v kombinovaném režimu.
      • Přidáno ForceMixedModeStackWalker nastavení do config.xml nebo DbgX.xml.
      • Byl přidán příkaz !forceclrmixedmodeunwind pro jednorázové vyšetřování nebo pokud nemůžete změnit nastavení konfigurace.
  • Provedli jsme obecná vylepšení ladění CLR v Linuxu.
  • Opravili jsme několik problémů u LinuxKernel.js a proměnných pro jednotlivé CPU.
    • !runq Příkaz byl přidán do LinuxKernel.js, aby bylo možné provést výpis front spuštění plánovače jádra podle jednotlivých CPU (podobné příkazu nástroje pro analýzu selhání Linuxu runq).
    • Opravili jsme různé příkazy LinuxKernel.js , které odpovídají změnám jádra. V novějších jádrech strom časovače používá uzly RB uložené v mezipaměti místo nezpracovaných uzlů RB. V novějších jádrech seznam all_bdevs již není, takže se bloková zařízení nyní procházejí od superbloku (blockdev_superblock).
  • Provedli jsme různé natvis opravy, aby systém fungoval více jako nedávné verze sady Visual Studio.
  • Upřednostňovaný sourcelink versus starší verze sourceinfo.
    • Přidán příkaz !lmsourcesinfo <module> pro zobrazení sourcelink datových proudů ze souborů PDB (pro podporu ladění problémů s sourcelink).

Známé problémy

Pokud zadáte seznam modulů, které se mají zaznamenávat pomocí TTD, zadání více než jednoho modulu v této verzi nefunguje.

1.2308.2002.0

Provedli jsme řadu oprav chyb a malých vylepšení.

1.2306.12001.0

Provedli jsme řadu oprav chyb a malých vylepšení.

1.2303.30001.0

Poznámka

Ladicí program byl přejmenován z WinDbg Preview na WinDbg.

Starší ladicí program vydaný s nástroji pro ladění pro Windows se teď označuje jako WinDbg (Classic).

Ladění časového cestování v ARM64

WinDbg běží nativně na ARM64 a povolili jsme také TTD nativních procesů ARM64. Teď můžete zaznamenávat nativní procesy ARM64 (a procesy x86 a ARM32) a snadno je ladit i na počítači x64. Podpora procesů s podporou x64 nebo x64 (ARM64EC) na zařízeních ARM64 ještě není dostupná.

Celkový výkon TTD byl také vylepšen, protože režijní náklady na nahrávání se podstatně snížily u procesů, které používají běžné pokyny SIMD. Celkově bylo optimalizováno 65 nových instrukcí, které jsou v rozsahu od MMX až po SSE 4.2, AVX a AVX2.

Nejednoznačné rozlišení bodu přerušení

Nejednoznačné zarážky umožňují ladicímu programu nastavit zarážky v určitých scénářích, kdy se výraz zarážky vyřeší na více míst. Další informace naleznete v tématu nejednoznačné rozlišení zarážky.

1.2107.13001.0

Vyhledávání WinDbg Preview teď obsahuje možnost hledání pomocí regulárních výrazů, označovaných jako regulární výrazy. Aby bylo možné povolit funkci regulárních výrazů v okně, ve kterém chcete vyhledávat, stiskněte Ctrl+F. Pak přepněte tlačítko označené .* vedle vyhledávacího pole.

Režim s omezeným přístupem

Omezený režim je volitelné nastavení, které může omezit typ ladicí relace, které WinDbg Preview může spustit na pouze vzdálené ladicí relace a soubory s výpisem paměti. Další informace naleznete v tématu WinDbg: Omezený režim.

Podpora stínovaných proměnných

V předchozích verzích WinDbg vyvolá chyby "Nejednoznačný symbol" při pokusu o vyhodnocení () nebo zobrazení (??dx) proměnné, která sdílí její název s jinou proměnnou v oboru. WinDbg teď nejednoznačuje proměnné, které sdílejí stejný název, připojením @n k názvu proměnné. Mezi příklady patří foo@0 a foo@1

Tato změna se také projeví v okně Lokály. Dříve se zobrazila pouze nejbližší proměnná v rámci datového kontextu.

1.2104.13002.0

Pohodlnou funkcí produktivity v nástroji WinDbg Preview je schopnost detekovat vzory v příkazovém okně. Pokud chcete rozpoznat vzory, vyberte libovolný text a všechny ostatní výskyty tohoto textu jsou zvýrazněné. Toto zvýraznění je užitečné při pohledu na vzory paměti. Teď také zvýrazní ekvivalentní čísla v jiných radixech bez ohledu na to, jak je číslo formátováno v šestnáctkovém, desítkovém nebo vědeckém zápisu. Další informace o schématech číslování naleznete v tématu n (Set Number Base).

Příklad:

Když vyberete 0x000001e2fb3f6160, všechny ostatní instance se zvýrazní bez ohledu na formát.

Snímek obrazovky okna WinDbg **Command** se zvýrazněnými více číselnými formáty.

Tato funkce také funguje s polodočasnými zvýrazněními. Vyberte Ctrl, a poklikejte na číslo, aby se zvýraznily všechny jeho instance. Tímto způsobem můžete sledovat několik důležitých čísel v historii příkazů. (Pokud chcete zvýraznění vymazat, vyberte Ctrl a poklikejte znovu na číslo.) Tato funkce také funguje při hledání čísel tak, že vyberete Ctrl+F.

Rozšířený přístup ke zdrojovému kódu

Příkaz zdrojové cesty .srcpath, .lsrcpath (Nastavit zdrojovou cestu) byl aktualizován tak, aby zahrnoval novou značku DebugInfoD. Další informace naleznete v tématu Rozšířený přístup ke zdrojovému kódu.

Hostitelské a hostující stavy procesů WOW v datovém modelu

Při ladění 32bitového procesu WOW z 64bitového kontextu teď můžete přistupovat k hostitelským i hostujícím stavům v datovém modelu.

Příklady 32bitového stavu hosta:

  • dx @$curprocess.Environment
  • dx @$curthread.Environment
  • dx @$curthread.Stack

Příklady 64bitového stavu hostitele:

  • dx @$curprocess.NativeEnvironment
  • dx @$curthread.NativeEnvironment
  • dx @$curthread.NativeStack

Vylepšení ladění JavaScriptu

JavaScript načtený v uživatelském rozhraní teď používá .scriptdebug příkaz pro přímé ladění v konzole. Další informace najdete v tématu skriptování ladicího programu pro JavaScript: ladění JavaScriptu.

Vylepšení přístupnosti

S WinDbg Preview jsme se zavázali vytvořit ladicí program, který je inkluzivní pro techniky s postižením. Provedli jsme následující vylepšení přístupnosti:

  • Odkazy příkazového okna se dají kliknout pomocí klávesnice (vyberte Shift+Enter).
  • Vylepšená navigace pomocí klávesnice v hlavní nabídce
  • Zlepšena navigace pásu karet pomocí klávesnice.
  • Zvýšení kontrastu u prvků uživatelského rozhraní

Nový typ přepisování přístupu k datům pro ladění časového cestování

Ladění časových cest teď poskytuje Overwrite datový typ přístupu. Dotazy na paměť, například dx @$cursession.TTD.Memory() teď mají jiný sloupec, který zobrazuje staré hodnoty zápisů.

Další opravy, vylepšení a aktualizace

  • Přidali jsme funkci, která automaticky rozpozná a použije alternativní řešení problému s hardwarem USB 3.1, když je hostitelem ladění jádra i cílem řadiče USB 3.1.
  • Byla přidána nová klávesová zkratka rozhraní: Ctrl+Shift+výběr přes odkaz DML ho zkopíruje do schránky.

1.0.2007.01003

Záložky na časové ose

Místo ručního kopírování a vkládání pozice do Poznámkového bloku si vytvořte záložku důležitých pozic pro cestování po čase ve WinDbg. Záložky usnadňují přehledné prohlížení pozic ve sledování vzhledem k jiným událostem a jejich anotaci.

Můžete zadat popisný název záložek.

Snímek obrazovky dialogového okna nové záložky s ukázkovým názvem pro první volání API v aplikaci Zobrazení pozdravu

Přístup k záložkám prostřednictvím okna Časové osy, které je k dispozici v Zobrazení>Časové osy. Když na záložku najedete myší, zobrazí se název záložky.

Snímek obrazovky časové osy WinDbg se třemi záložkami a popisem, který zobrazuje název záložky

Záložku můžete vybrat a podržet (nebo na tuto záložku kliknout pravým tlačítkem) a přesunout ji do této pozice, přejmenovat ji nebo ji odstranit.

Snímek obrazovky s místní nabídkou záložky, která se zobrazí po kliknutí pravým tlačítkem myši, s možnostmi přejít na pozici, upravit a odstranit.

Okno modulů

Nové okno zobrazuje moduly a související informace, které jsou k dispozici na pásu karet Zobrazení . Okno Moduly ukazuje:

  • Název modulu, včetně umístění cesty.
  • Velikost v bajtech načteného modulu.
  • Základní adresa, do které se modul načte.
  • Verze souboru.

Snímek obrazovky s oknem Moduly WinDbg zobrazující pět uvedených modulů

Názvy vláken a popisy dostupné během ladění

Názvy vláken, které jsou nastavené z SetThreadDescription, jsou nyní k dispozici při ladění živého uživatelského režimu. Názvy vláken jsou k dispozici pomocí ~ příkazu nebo datového modelu ladicího programu.

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

Podpora přenosných souborů PDB

Byla přidána podpora přenosných souborů PDB. Formát PDB popisuje kódování informací ladění vytvořených kompilátory jazyků rozhraní příkazového řádku a využívaných ladicím programem a dalšími nástroji. Další informace naleznete v tématu Přenosné symboly PDB.

Další změny a opravy chyb

  • Poskytli jsme podporu ladění výpisu paměti jádra AMD64 a Linuxu pro WinDbg.
  • Provedli jsme vylepšení nahrávání časových cest a další opravy.

1.0.1912.11001

  • Časové osy TTD: Nové okno zobrazuje vizuální znázornění důležitých událostí v trasování: výjimky, zarážky, volání funkcí a přístup k paměti. Časové osy se automaticky otevírají a zobrazují výjimky (pokud jsou k dispozici) a zarážky. Další informace naleznete v WinDbg Preview: Timeline.
  • Přepnuli jsme na výchozí chrome okna: Vlastní chrome okna, které jsme použili, způsobilo některé problémy se škálováním a změnou velikosti, takže jsme ho prozatím odebrali.
  • Vylepšená navigace pomocí klávesnice v nabídce Soubor: Nabídka soubor je snadnější procházet jenom pomocí klávesnice.

Další změny a opravy chyb

  • Byla zakázána okna Stack a Locals, když váš cíl běží, aby se nezobrazovala chyba "Nezadaná chyba" v případě, že neexistuje žádný cíl.
  • Do dialogového okna Připojit jsme přidali sloupec Služby, který vám pomůže snadno zjistit, které služby jsou spuštěné.
  • Opravili jsme chybu, která způsobovala, že detekce architektury nefungovala při otevření aplikací s argumenty.
  • Vylepšená disassemblace v okně Disassembly při načtení soukromých symbolů.
  • Odebrali jste tlačítko Load JSProvider z pásu karet skriptování, protože jsprovider.dll se teď načte automaticky.

1.0.1908.30002

  • Vylepšení objektů volání TTD: Volání dotazů teď obsahují názvy parametrů, typy a hodnoty. Při dotazování v rámci trasování volání funkcí můžete získat plně typované parametry a jejich hodnoty. Tato funkce usnadňuje filtrování výsledků podle parametrů.
  • Podpora pro Open Enclave: WinDbg Preview teď může ladit aplikace Open Enclave. Další informace naleznete v tématu Otevření ladění enklávy).
  • Výpisy jádra ELF: Jako součást podpory Open Enclave může WinDbg otevřít výpisy jádra ELF a binární soubory a také symboly DWARF (DWARF 5 se v současné době nepodporují) z enclav i linuxových aplikací. Když otevřete výpis paměti jádra z aplikace jiného systému než Windows, základní okna a příkazy by měly správně fungovat, ale většina rozšíření a příkazů specifických pro Windows nefungují. Soubory ELF a TRPASLÍK se stahují ze serverů symbolů podle klíčových konvencí definovaných v konvencích klíčů SSQP. Enklávy jsou jediným podporovaným scénářem, ale uvítáme jakoukoli zpětnou vazbu k možnosti otevření jiných výpisů z paměti jádra Linuxu.
  • Změna formátu souboru TTD: Významná aktualizace formátu souboru pro trasování TTD přeruší kompatibilitu s budoucími verzemi. Předchozí verze WinDbg Preview nemohou otevřít sledování zaznamenané aktuální verzí a budoucími verzemi WinDbg Preview. Tato verze a budoucí verze budou moci otevřít nové i staré záznamy.

Další změny

  • TTD teď používá 64bitový modul pro indexování a odpovídající bitovou verzi modulu ladicího programu pro přehrání. Potenciální problémy s pamětí při indexování a problémy se SOS při opětovném přehrání jsou minimalizovány.
  • Spuštění dx bez jakýchkoli parametrů teď zobrazuje kořenový obor názvů pro snadnější prohlížení.
  • Nabídka Nastavení teď obsahuje možnosti pro úpravu výchozího symbolu a umístění zdrojové mezipaměti.
  • Vylepšila se podpora nahrávání AVX-512 (záznam AVX-512 způsobuje zpomalení větší než normální).
  • Je povolené offline licencování .

1.0.1905.12001

  • Vylepšení zmírnění chyby SymSetDiaSession: Oprava pro zmírnění chyby způsobené aplikacemi, které do našeho procesu injektují DbgHelp, v některých scénářích nefungovaly. Vylepšili jsme ho a dál monitorujeme zpětnou vazbu k této chybě.

  • Přizpůsobení barvy zvýraznění: Scénáře často vyžadují mít otevřeno několik instancí WinDbg. Pohyb mezi nimi může být matoucí a nějakou dobu trvat, než zjistíte, která z nich je "správná". Přidali jsme možnost změnit modrou barvu zvýraznění, která pomáhá vizuálně odlišit sezení a usnadnit jejich přepínání.

    Vyberte pás karet Zobrazení a v poslední sekci vyberte možnost zvýrazňující barvy. Při otevření budoucích relací z posledních cílů se barva zvýraznění zachová jako součást pracovního prostoru cíle.

  • Vylepšení tokenizace zdroje: Okno Zdroj teď má základní podporu pro tokenizaci zdrojových souborů Rust a C++ SEH __try/__except/__finally/__leave.

  • Vylepšení coroutine: Vylepšili jsme podporu místních proměnných v rámci coroutines a určitých optimalizovaných proměnných.

  • Výchozí nastavení symbolu a zdrojové mezipaměti: Do nabídky Nastavení v části Nastavení ladění jsme přidali možnost pro změnu umístění mezipaměti pro symboly. Existuje známý problém, kdy nastavení prázdné způsobí selhání načítání zdroje. Plánujeme přidat ověření, abychom zabránili tomuto problému v budoucí verzi.

  • -pv opravy: Opravili jsme chybu, která mohla v některých případech bránit -pv (neinvasivní připojení).

1.0.1904.18001

  • Oprava chyby SymSetDiaSession: Obdrželi jsme hlášení o chybě, která v některých situacích zabraňuje spuštění WinDbg Preview. Do našeho procesu se několik externích aplikací pokouší vložit verzi DbgHelp před jeho načtením. Některé z nich používají verzi DbgHelp s chybějícími funkcemi, což způsobuje tuto chybu při pokusu o použití těchto funkcí. Přidali jsme opravu tohoto problému a plánujeme ho sledovat, abychom zjistili, jestli existují scénáře, ve kterých k němu stále dochází.
  • Ovládací prvek Písmo: Přidali jsme nastavení pro řízení písma a velikosti písma. Existují dvě různá nastavení: jedno je pro textová okna (jednosekutná okna, jako je Disassembly, Source a Command), a jedna je pro okna nástrojů (například Locals a Stack). Tyto možnosti nemají vliv na několik oblastí. Plánujeme je v budoucnu aktualizovat.
  • Vylepšení zvýraznění: Trvalé zvýraznění textu v okně Příkaz teď také zvýrazní text v oknech Zdroj a Poznámky .
  • Vylepšení načítání zdrojů: Změnili jsme, jak funguje načítání zdrojových souborů. Dříve, když jste otevřeli zdrojový soubor, operace stroje, jako je spouštění více příkazů, nebyly možné nebo byly nepředvídatelné. Změnili jsme, kde k načítání dochází, abychom umožnili lepší paralelismus a spolehlivější zrušení operací otevírání zdrojového kódu.

Další změny a opravy chyb

  • Přidání funkce Přejít do zpětného překladu do místní nabídky okna Zdroj
  • Bylo přidáno zaškrtávací políčko Sledovat aktuální instrukce v okně disassemblování.
  • Opravili jsme chybu, která způsobovala, že příkazové okno fungovalo pomalu při výstupu velkého množství textu.
  • Změna funkce kláves Page up a Page down, aby se chovaly podobně jako ve Visual Studio.
  • Provedli jsme změny tak, aby se při otevření souboru ASM v okně Zdroj zvýrazňoval základní komentář, řetězec a direktiva.

1.0.1812.12001

Tato verze zahrnuje následující aktualizace:

  • Hlavička datového modelu ladicího programu C++: K dispozici je nová hlavička jazyka C++, DbgModel.hkterá je součástí sady Windows SDK pro rozšíření datového modelu ladicího programu prostřednictvím jazyka C++. Další informace naleznete v tématu Přehled datového modelu Ladicího programu C++. Tato verze obsahuje nové rozšíření, které do datového modelu ladicího programu přidá další funkce ve stylu rozhraní API, ke kterému je možné získat přístup prostřednictvím dx příkazu, JavaScriptu a nové DbgModel.h hlavičky. Toto rozšíření rozšiřuje datový model tak, aby zahrnoval znalosti o sestavení a spouštění kódu prostřednictvím debugger.Utility.Code oboru názvů a místního systému souborů prostřednictvím debugger.Utility.FileSystem oboru názvů.
  • Rozšíření syntetických typů: S tímto novým rozšířením rozhraní API máme v úložišti GitHubu novou ukázku. Toto rozšíření JavaScriptu čte základní soubory hlaviček jazyka C a definuje syntetické informace o typu pro struktury a sjednocení definované v hlavičce. dx Prostřednictvím příkazu se pak dá paměť zobrazit strukturovaně, jako kdybyste měli PDB s informacemi o typu pro tyto typy.

Další změny a opravy chyb

  • WinDbg Preview teď chytřeji zvládá přenos Zdroj oken nebo okna disassemblace do popředí zobrazení při krokování.
  • Název okna WinDbg Preview byl při ladění jádra upraven tak, aby obsahoval důležitější informace na začátku.
  • Kontrast střídavého pozadí v příkazovém okně by měl být mírně zřetelnější.

1.0.1810.2001

Tato verze zahrnuje tyto aktualizace:

  • Přidali jsme nové dialogové okno Nastavení , ke kterému máte přístup z nabídky Soubor nebo na pásu karet Domů .
  • Přidání dialogového okna nastavení událostí a výjimek Tato nabídka změní způsob, jakým ladicí program zpracovává události a výjimky, což je ekvivalent příkazů nebo dialogového sx okna filtrů událostí WinDbg. Na pásu karet Domů vyberte Nastavení. Potom v nabídce vlevo vyberte Události a výjimky pro správu událostí a výjimek.
  • Vylepšili jsme indexer TTD s lepším výkonem. Toto vylepšení zvyšuje výkon indexování trasovacích souborů TTD, což zkrátí proces indexování (2krát až 10krát) a zmenší indexovací soubory (přibližně 50% menší). Vylepšení výkonu jsou nejvýraznější pro stopy o velikosti větší než 4 GB, nebo při použití počítače s mnoha procesorovými jádry (8+). Nový indexer usnadňuje ladění velkých stop (50 GB+).
  • Přidán nový debugArch příznak spuštění pro určení architektury WinDbg Preview se pokusí spustit modul ladicího programu se správnou bitovou verzí cíle, aby lépe podporoval ladění spravovaného kódu. Existují okolnosti, kdy nelze určit správnou bitovou verzi, nebo můžete chtít přepsat jeho rozhodnutí. K řízení architektury modulu ladicího programu použijte -debugArch x86|amd64.

Další změny a opravy chyb

  • Opravili jsme chybu, která způsobovala, že se černé pruhy zobrazovaly na ladicím nástroji v režimu celé obrazovky s otevřeným plovoucím oknem.
  • Opravili jsme chybu, která způsobovala neúmyslné vymazání možností symbolů.
  • Nyní je historie příkazů zachována při otevírání z nedávných cílů.
  • Podporované úpravy v okně datového modelu, kde teď můžete upravovat hodnoty.
  • Trasování TTD je jasnější, protože jsou neindexované.
  • Vylepšili jsme výkon okna Místní hodnoty.
  • Bylo přidáno tlačítko na pásu karet pro uložení protokolů okna příkazového okna do souboru.
  • Přidáno . SelectMany(\<projection\>) do výchozí sady metod LINQ.

1.0.1807.11002

Tato verze zahrnuje následující aktualizace:

  • Automatické ukládání a načítání zarážek: Tento krok je prvním krokem nahrazení pracovních prostorů. Teď můžete ukládat a načítat zarážky. Spuštění něčeho, co jste dříve ladili z karty Poslední v nabídce Soubor , teď načte zarážky z této relace. Plánem je rozšířit tuto funkci, aby se zachovaly další informace napříč relacemi. Hardwarové zarážky (ba) a další různé vlastnosti na zarážkách, jako jsou kontexty a podmínky specifické pro vlákno a procesy, se aktuálně neukládají.

Menší změny a opravy chyb

  • Přidání možností -xpříkazového řádku , , -xe-xd, -xna -xi pro řízení zpracování výjimek a událostí. Tyto možnosti příkazového řádku se chovají jako jejich protějšky příkazů.
  • Přidali jsme podporu v okně Poznámky pro tučné formátování, podtržení a kurzívu.
  • Opravili jsme některé problémy s přiblížením a posouváním.
  • Přidali jsme podporu, aby výběr textu v oknech Command, Memory, Source nebo Disassembly teď zvýrazňuje další instance vybraného textu.
  • Opravili jsme chybu, kdy přerušení načítání symbolů způsobilo selhání načítání symbolů v průběhu celé relace.
  • Opravili jsme chybu, takže se NatVis nyní správně znovu načítá při restartování relace.

1.0.1805.17002

Tato verze zahrnuje následující aktualizace:

  • Nové okno rozebírání: Okno nyní obsahuje:

    • Posouvání nahoru nebo dolů nyní průběžně načítá více rozebrání kódu, kdykoli je to možné.
    • Zvýraznění se používá k identifikaci syntaxe pro čísla, adresy kódu a kódy operací.
    • Výběrem symbolu kódu se okno Disassembly přesune na dané umístění.
    • Když najedete myší na čísla, zobrazí se popis, který toto číslo převede na jiné základy.
    • Použití hlaviček označuje začátek funkce.
  • Rychlejší okno pro Zdroj: Okno Zdroj bylo aktualizováno tak, aby bylo rychlejší a efektivnější na využívání zdrojů.

Menší změny a opravy chyb

  • Opravili jsme problémy související s ukládáním symbolů do mezipaměti.
  • Opravili jsme některé případy, kdy nešlo použít přepnutí počátečního stavu, když cíl nebyl inicializován.
  • Přidali jsme podporu, takže pokud v okně Příkaz vyberete kartu bez dostupného obsahu, kurzor teď zůstane ve vstupním poli.
  • Byla přidána podpora, aby WinDbg Preview při otevření souborů CAB automaticky detekoval architekturu bitů.

1.0.1804.18003

Tato verze zahrnuje následující aktualizace:

  • Vylepšení stavu a zrušení symbolů: V ladicím programu se zobrazují symboly načítání BUSY a je obtížné určit, co dělá a proč, aniž by měl !sym povolenou hlučnost. Aktualizovali jsme WinDbg Preview, aby měla lepší komunikaci s tím, co dělá při načítání symbolů, abychom mohli vyřešit případné problémy.

    Kromě změn, které vám umožní zjistit, co se děje, jsme také provedli některé změny, které zlepšují spolehlivost zrušení symbolů. Okno Protokoly obsahuje některé podrobnosti, které jsou obvykle výstupem, když !sym je povolená hlučnost. Pokud vyberete Zobrazit>protokoly, získáte úplný výstup načítání hlučného symbolu, aniž byste ho museli zapnout a znovu načíst symboly.

  • Okno Experimentální poznámky: WinDbg Preview má nyní okno pro pořizování poznámek. Výběrem Zobrazit>poznámky ho otevřete. Pokud do něj zkopírujete nebo vložíte, odkazy DML se zachovají a budou fungovat stejně jako v příkazovém okně. Soubory poznámek můžete také uložit a načíst z pásu karet Poznámek když je okno otevřené.

  • Experimentální rychlejší okno Zdroj: Aby se zlepšil výkon WinDbg Preview, je experimentální nové okno Zdroj efektivnější. Kolem kontextových nabídek a zvýrazňování syntaxe existuje několik mezer, ale před dokončením chceme všem poskytnout zpětnou vazbu. Spusťte $UseFastSourceWindow, abyste ho mohli použít. Pokud se chcete vrátit ke starému, spusťte $UseMonacoSourceWindow. Nastavení se zachová napříč relacemi. Abyste získali novou verzi, musíte zavřít a znovu otevřít zdrojová okna.

  • JSProvider API verze 1.2: Pro rozšíření JavaScriptu, která deklarují podporu rozhraní API verze 1.2:

    • Jakýkoli objekt s metodou .compareTo , která ukončí skript, má vlastní srovnávací program. (Relační operátory fungují v DX vyhodnocovači a jinde. Příklad je IModelObject::Compare.)
    • Jakýkoli objekt s metodou .equals , která ukončí skript, má na něm vlastní operátor rovnosti. (Operátory == a != fungují ve vyhodnocovači DX a jinde. Příkladem je IModelObject::IsEqualTo.)
    • Nativní objekty nebo objekty datového modelu, které vstupují do skriptu, mají .compareTo a .equals na sobě, což umožňuje přístup k jakýmkoli vlastním komparátorům nebo vlastním implementacím rovnosti.

Menší změny a opravy chyb

  • Přidali jsme podporu, díky které se .server nyní vypisuje jako plně kvalifikovaný název domény. To usnadňuje použití v případě problémů s doménou, obzvláště pokud se týkají krátkých názvů.
  • Přidali jsme podporu, aby ctrl+G teď fungovalo v okně Zdroj .
  • Do okna disassemblace byl přidán adresní řádek.
  • Přidali jsme podporu, aby WinDbg Preview nyní zpracovávala _NT_SYMBOL_PATH očekávaným způsobem.
  • Byla přidána příkazová volba -server.
  • Přidali jsme podporu, aby se dotazy datového modelu TTD zobrazovaly postupně. Pokud ho přerušíte, stále se zobrazí některé výsledky. Tato funkce je experimentální a volitelná. Spuštěním dx @$cursession.TTD.AsyncQueryEnabled = 1 ji povolte.
  • Byla přidána podpora, aby příkaz dps nyní obsahoval odkazy na zdrojové soubory, na něž se odkazuje.

1.1801.19001.0

Tato verze zahrnuje následující aktualizace:

  • Zvýraznění textu: Teď můžete zvýraznit všechny výskyty textu, který jste vybrali, přímo v debuggeru. Pokud chcete tuto funkci použít, vyberte v okně Příkaz nějaký text a pak na pásu karet Příkaz vyberte Zvýraznění. Můžete také vybrat Kombinaci kláves Ctrl+Alt+H. Pokud u již zvýrazněného textu použijete některou z těchto možností, zvýraznění se odebere.

Pokud raději používáte příkazy, můžete použít tento $hl příkaz:

$hl ["someValueHere"]: Zvýraznění dává text (nebo zvýraznění zrušte, pokud už je zvýrazněno). $hl clearAll: Vymažte všechny zvýrazněné položky. $hl caseSensitive [1|0]: Nastavte zvýraznění podle rozlišování velkých a malých písmen nebo bez něj. (Výchozí hodnota nerozlišuje malá a velká písmena.)

Tato verze obsahuje také některé menší opravy chyb.

1.1712.15003.0

Tato verze zahrnuje následující aktualizace:

  • Dotazy na paměť TTD: TTD teď můžete dotazovat na přístup k paměti podobným způsobem jako dotaz na dnešní volání. Teď můžete najít všechna čtení, zápisy a spuštění, která přistupují ke konkrétnímu rozsahu paměti.

    • Příklad čtení a zápisu: dx @$cursession.TTD.Memory(startAddress, endAddress, "rw")
    • Příklad jedinečného spuštění: dx @$cursession.TTD.Memory(startAddress, endAddress, "ec")
  • Změny nastavení: WinDbg Preview teď automaticky ukládá nastavení mezi relacemi, včetně cesty symbolu a zdrojové cesty.

Vylepšení JavaScriptu

  • 64bitová čísla a číselné hodnoty v JavaScriptu teď obsahují metodu modulo, která umožňuje skutečnou 64bitovou operaci modulo.
  • Objekty definované v JavaScriptu teď můžou implementovat vlastní srovnatelný nebo spravedlivý pojem. dx funguje pomocí standardních operátorů C++ nebo v operacích LINQ. Aby bylo možné tuto funkci použít, musí skript deklarovat v initializeScript poli, které podporuje novou verzi rozhraní API hostitele vložením záznamu new host.apiVersionSupport(1, 2). Tyto funkce pak můžete použít v libovolném dx dotazu LINQ okna datového modelu. Pokud metoda implementuje .compareTo(other), je porovnatelná (porovnávací operátory fungují v dx a LINQ). Pokud metoda vrátí zápornou hodnotu, pak this < other. Pokud metoda vrátí nulu, pak this == other. Pokud metoda vrátí kladnou hodnotu, pak this > other. Pokud metoda implementuje .equals(other), je spravedlivé (== funguje v dx a LINQ). Metoda musí vrátit hodnotu true nebo false.

Menší změny a opravy chyb

  • Opravili jsme chybu, kdy během ladění spouštění nefungovala okna Stack a Locals .
  • Aktualizován výstup LM pro přesnější hlášení ProductVersion a podobných polí.
  • Tlačítko Krok zpět ven jsme povolili během relací TTD.
  • Byla přidána podpora pro -lsrcpath.
  • Opravili jsme záhlaví v oknech Místní, Hodinky a Model, aby při posouvání dolů nezmizely.
  • Byla přidána podpora, aby se při použití Alt+Tab k návratu do WinDbg Preview správně zachovalo umístění kurzoru v příkazovém okně.
  • Byla přidána klávesová zkratka Ctrl+Alt+V pro přepínání podrobného režimu.
  • Přidali jsme podporu, která umožňuje zakázat automatické rolování v příkazovém okně podržením prstu nebo pravého tlačítka myši na kartě Příkaz a výběrem položky Vypnout automatické rolování.
  • Přidali jsme podporu, abyste teď mohli ladit podřízené procesy prostřednictvím rozšířené stránky pro spouštění spustitelných souborů.

1.0.14.0

Tato verze zahrnuje následující aktualizace:

  • Vylepšené prostředí procesového serveru: Nové oznámení v nabídce Soubor ukazuje, k jakému procesovém serveru jste připojeni a s nimi pracujete. V rámci těchto změn se při ukončení ladicí relace připojení procesového serveru zachová a v nabídce Soubor se můžete odpojit.
  • Nové předem nastavené možnosti rozložení na pásu karet Zobrazení: Nová možnost Rozvržení je dostupná na pásu karet Zobrazení. Aktuálně existují tři rozložení: výchozí, jedno zaměřené na demontáž a jedno minimální.
  • Pás karet pro ladění Time Travel: Při ladění trasování TTD se zobrazí vylepšený pás karet Time Travel.
  • Metadata ze skriptů JavaScriptu: Rozšíření JavaScriptu teď můžou vracet metadata pro vlastnosti a další konstrukty. Rozšíření teď může poskytovat řetězce nápovědy, indikovat radix zobrazení pro hodnoty a další. Metadata jsou poskytována umístěním popisovače metadat do objektu buď přítomností Symbol.metadataDescriptor , nebo explicitním voláním host.metadata.defineMetadata. Funkce vrací, iterované hodnoty a další kontexty hodnot mohou vracet metadata pro jejich hodnotu prostřednictvím host.metadata.valueWithMetadata.
  • Aktualizace javascriptového rozhraní API: Některé potenciálně zásadní změny na úrovni zdroje byly provedeny v rozhraních API v rámci zprostředkovatele JavaScriptu (včetně nových projektovaných metod a vlastností nativních objektů). Existující rozšíření neuvidí žádné z potenciálně zásadních změn bez toho, že by podporovala novou verzi rozhraní JsProvider API. Podpora nové verze rozhraní API je označená umístěním host.apiVersionSupport záznamu do pole vráceného initializeScript deklarací identity podpůrné verze 1.1.

Změny v rozhraní API verze 1.1

  • Funkce host.getModuleSymbol a host.getModuleType vrátí hodnotu null, pokud nemohou najít symbol, místo aby vyvolaly výjimku.
  • Všechny nativní objekty mají na sobě vlastnost adresy kromě .targetLocation. Pokud objekt nemá adresu, při přístupu k vlastnosti se vyvolá výjimka.
  • Všechny nativní objekty mají nové .getObjectValue a .setObjectValue metody pro přístup k vlastnostem objektu, což může být v konfliktu s názvy, které JavaScript umístí na objekt (například address).

Další změny JavaScriptu

  • Rozšíření JavaScriptu teď můžou přidávat a odebírat vlastnosti objektů datového modelu prostřednictvím Object.defineProperty operátoru delete. Přidání nebo registrace javascriptové třídy jako nadřazeného modelu nebo podpisu typu je stále upřednostňovaným způsobem manipulace s objektovým modelem.
  • Rozšíření JavaScriptu teď můžou upravovat globální proměnné v modulech v ladícím cílu prostřednictvím nového host.setModuleSymbol API.
  • Všechny matematické funkce, které jsou v 64bitovém typu knihovny (například .add, .subtract, .multiplya .divide) jsou také přítomné na číslech JavaScriptu.
  • Funkce a vlastnosti Jazyka JavaScript teď můžou vracet hodnoty, které jsou výčty prostřednictvím vlastního zařazování. Funkce nebo přístupový prvek vlastnosti se může vrátit host.typeSystem.marshalAs(value, type…) k vyvolání takového vlastního maršálování.
  • Příkaz zarážky v ladicím programu skriptu teď může kromě pozic řádků a sloupců přerušit názvy funkcí.
  • Objekty typu v rozšíření javascriptu mají přístup k jejich obsahujícímu modulu prostřednictvím .containingModule vlastnosti.

Menší změny a opravy chyb

  • Opravili jsme formátování podmíněných karet, aby bylo méně matoucí.
  • DML byl přepracován, aby byl při analýze přísnější, čímž se zlepší výkon.
  • Provedli jsme různé opravy výkonu a chování Kombinace kláves Ctrl+F.
  • Bylo přidáno upozornění při spuštění bez zvýšení práv před pokusem o použití TTD.
  • Byla přidána možnost přepsání automatické detekce bitové šířky cíle.
  • Zakázali jsme různé možnosti nabídky Soubor a pásu nástrojů, když je nelze používat (například Přejít v dump souboru).

Známé problémy

SOS nefunguje na stopách x86.

1.0.13.0

Tato verze přidává sledování časových cest. Pomocí ladění Time Travel můžete zaznamenat proces a pak ho přehrát později dopředu i dozadu. Funkce TTD vám může usnadnit ladění problémů tím, že vám umožní "převinout zpět" relaci ladicího programu, aniž byste museli problém reprodukovat, dokud nenajdete chybu. Další informace viz Ladění časového cestování: Přehled.

1.0.12.0

Tato verze byla první verzí WinDbg Preview. Obecné informace o funkcích dostupných ve WinDbg Preview najdete v tématu Hlavní funkce WinDbg.