Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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_tachar32_tna 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
!ttpří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á
.AlternateFunctionsvlastnost .<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
.AllowNugetExeUpdatenastavení pro galerie rozšíření založených na NuGetu. - Opravili jsme chybu při čtení symbolů DWARFv5 kolem
.debug_namestabulek 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
CreateProcessWvzdálené ladění. - Pevné
!percpua!allpercpupříkazy pro ukazatele procesoru se dynamicky přidělují prostřednictvímalloc_percpujá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
$OpenDmoToolwindowlze přizpůsobit pomocí příkazu$OpenDmoToolwindowa 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.GetTypeInformationVrá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.StepFiltersVrátí seznam filtrů kroku, které mají vlastnosti
Id,Description,Type,PatternaIsEnabled. 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
gcaktivovala 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
- Aktualizováno na verzi 1.11.481.
- Další informace najdete v poznámkách k verzi TTD.
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
- Aktualizováno na verzi 1.11.429.
- Další informace najdete v poznámkách k verzi TTD.
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šiřitelnost uživatelského rozhraní prostřednictvím galerie rozšíření a datového modelu
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í.
Byly přidány parametry výjimky do spouštěče načtení výjimky v galerii 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()
Nový příkaz pro zobrazení informací SourceLink
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 -ato, 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:
- ladění živého vzdáleného procesu Linuxu
- symboly a zdroje Linuxu
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
ForceMixedModeStackWalkernastavení doconfig.xmlneboDbgX.xml. - Byl přidán příkaz
!forceclrmixedmodeunwindpro jednorázové vyšetřování nebo pokud nemůžete změnit nastavení konfigurace.
- Přidáno
- Přidali jsme možnost vynutit procházení snímků CLR v kombinovaném režimu.
- Provedli jsme obecná vylepšení ladění CLR v Linuxu.
- Opravili jsme několik problémů u
LinuxKernel.jsa proměnných pro jednotlivé CPU.-
!runqPříkaz byl přidán doLinuxKernel.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í Linuxurunq). - 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 seznamall_bdevsjiž není, takže se bloková zařízení nyní procházejí od superbloku (blockdev_superblock).
-
- Provedli jsme různé
natvisopravy, aby systém fungoval více jako nedávné verze sady Visual Studio. - Upřednostňovaný
sourcelinkversus starší verzesourceinfo.- Přidán příkaz
!lmsourcesinfo <module>pro zobrazenísourcelinkdatových proudů ze souborů PDB (pro podporu ladění problémů ssourcelink).
- Přidán příkaz
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
Hledání regulárních výrazů
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
Inteligentní výběr a hledání čísel
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.
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.Environmentdx @$curthread.Environmentdx @$curthread.Stack
Příklady 64bitového stavu hostitele:
dx @$curprocess.NativeEnvironmentdx @$curthread.NativeEnvironmentdx @$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.
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.
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.
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.
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í
dxbez 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ímdxpříkazu, JavaScriptu a novéDbgModel.hhlavič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.
dxProstř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
sxokna 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ý
debugArchpří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-debugArchx86|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-xipro ří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
!sympovolenou 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ž
!symje 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 jeIModelObject::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 jeIModelObject::IsEqualTo.) - Nativní objekty nebo objekty datového modelu, které vstupují do skriptu, mají
.compareToa.equalsna sobě, což umožňuje přístup k jakýmkoli vlastním komparátorům nebo vlastním implementacím rovnosti.
- Jakýkoli objekt s metodou
Menší změny a opravy chyb
- Přidali jsme podporu, díky které se
.servernyní 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_PATHoč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 = 1ji povolte. - Byla přidána podpora, aby příkaz
dpsnyní 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")
-
Příklad čtení a zápisu:
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.
dxfunguje pomocí standardních operátorů C++ nebo v operacích LINQ. Aby bylo možné tuto funkci použít, musí skript deklarovat vinitializeScriptpoli, které podporuje novou verzi rozhraní API hostitele vložením záznamunew host.apiVersionSupport(1, 2). Tyto funkce pak můžete použít v libovolnémdxdotazu LINQ okna datového modelu. Pokud metoda implementuje.compareTo(other), je porovnatelná (porovnávací operátory fungují vdxa LINQ). Pokud metoda vrátí zápornou hodnotu, pakthis < other. Pokud metoda vrátí nulu, pakthis == other. Pokud metoda vrátí kladnou hodnotu, pakthis > other. Pokud metoda implementuje.equals(other), je spravedlivé (==funguje vdxa 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í
ProductVersiona 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ímhost.metadata.defineMetadata. Funkce vrací, iterované hodnoty a další kontexty hodnot mohou vracet metadata pro jejich hodnotu prostřednictvímhost.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.apiVersionSupportzáznamu do pole vrácenéhoinitializeScriptdeklarací identity podpůrné verze 1.1.
Změny v rozhraní API verze 1.1
- Funkce
host.getModuleSymbolahost.getModuleTypevrá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é
.getObjectValuea.setObjectValuemetody pro přístup k vlastnostem objektu, což může být v konfliktu s názvy, které JavaScript umístí na objekt (napříkladaddress).
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.definePropertyoperá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.setModuleSymbolAPI. - 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
.containingModulevlastnosti.
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.