Aracılığıyla paylaş


Sürüm notları

Bitleri inceleyen büyüteç içeren WinDbg logosu.

Bu konu, WinDbg'deki yenilikler hakkında bilgi sağlar. Önceki sürümler WinDbg Previewolarak yayımlandı.

1.2506.12002.1

Yeni Özellikler

WinDbg artık konsol modu hata ayıklayıcıları (cdb.exe / ntsd64.exe / kd.exe) ile birlikte gönderilir! İkili dosyaları birbirinden ayırıp araçların mevcut kopyalarıyla karışmamak için ikili dosyalar mimari adını içerir:

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

Ek özellikler:

  • Veri Modeli araç penceresi başlığı $OpenDmoToolwindow komutuyla özelleştirilebilir ve başlık çubuğu bağlam menüsü aracılığıyla da değiştirilebilir.
  • Sembol dosyalarının paralel HTTP indirmelerini etkinleştirmek için yeni hata ayıklayıcı ayarı. Bu seçenek varsayılan olarak etkindir.

Hata Düzeltmeleri

  • Hedef yolun son kullanılanlar menüsünden başarıyla açılabilmesi için komut satırı (-z) aracılığıyla açılan döküm dosyaları için nasıl kaydedildiği düzeltildi.
  • Betik Düzenleyicisi penceresindeki çökme düzeltildi.
  • WinDbg'nin kaynak dosyaların daha tutarlı bir görünümünü sağlamak için Kaynak Pencere'de açılan kaynak dosyalarda tutarsız satır sonlarını işleme şekli düzeltildi.
  • Yeni paralel indirmeler özelliği kullanılırken HTTP sembol sunucuları için kimlik bilgilerinin yenilenmediği bir sorun düzeltildi.
  • Veri modeli nesnelerinin özelliklerinin JavaScript uzantılarında düzgün numaralandırılmama sorunu düzeltildi.
  • Tıklama ve sürükleme yoluyla yeniden sıralandığında sütun metninin kaybolmasına neden olan bir sorun düzeltildi.
  • Başlangıçta hata ayıklama hedefine komut satırı seçenekleri aracılığıyla olay filtreleme ayarının uygulanmadığı bir sorun düzeltildi.
  • Bazen bir araç penceresinin çıkarılması durumunda boş içerikle sonuçlandığı bir sorun düzeltildi.
  • ARM64 makinelerinde X64 öykünmüş işlemlerin minidumpları üzerinde hata ayıklama sorunu düzeltildi.
  • Belirsiz kesme noktalarının hata ayıklayıcının çökmesine neden olduğu bir sorun düzeltildi.
  • Canlı bir Linux işleminde hata ayıklama sırasında GDBServer'ın işlem çıkışında kilitlenmesi sorunu düzeltildi.
  • Özelliklerin daha iyi numaralandırılması ve kilitlenme sorununun düzeltilmesi dahil olmak üzere JavaScript uzantılarında (.scriptdebug) hata ayıklamayla ilgili birden çok sorun düzeltildi.

Genel Kullanıcı Arabirimi Geliştirmeleri

  • Komut önerisi açılır penceresi imleçle hizalanır ve imleç öncesi her şey yerine yalnızca önerilen tamamlamaları gösterir.
  • Hata ayıklama hedefi başlatma hatası iletişim kutusu daha ayrıntılı bilgi sağlar ve açık döküm hataları için açılmayan döküm dosyası TSG'sine bir köprü sağlar.
  • Araç penceresi başlık çubukları, yerleşik sekmeleriyle aynı bağlam menüsüne sahiptir.
  • Yerel Ayarlar, İzleme ve Model pencerelerinde görsel iyileştirmeler.
  • Zaman Yolculuğu Hata Ayıklama (TTD) 1.11.532 sürümüne güncelleştirildi. Daha fazla ayrıntı için TTD Sürüm Notları'e bakın.

1.2502.25002.0

Yeni Özellikler

Komut Penceresi IntelliSense

İlk yazılan karakter . (nokta), ! (bang) veya $ (dolar işareti) olduğunda komut giriş istemi otomatik olarak önerilen tamamlamaları gösterir. Öneriler komut kısayoluyla da çağrılabilir Ctrl + Space

Anlık görüntü hata ayıklama

Yerel olarakcanlı işlemlerde hata ayıklarken, hata ayıklayıcısı işlemin anlık görüntülerini alabilir ve "Uzantılar" sekmesindeki simgeler aracılığıyla anlık görüntülerle canlı işlem arasında geçiş yapabilir. Benzer şekilde, hata ayıklayıcı "Uzaktan hata ayıklayıcıya bağlanma" içindeki bir snapshot:pid=<process pid in hex> protokol dizesi kullanarak, işlemi askıya almadan bir işlem anlık görüntüsüne bağlanabilir.

Yeni veri modeli API'leri

  • Debugger.Utility.Symbols.GetTypeInformation

Girdi olarak verilen herhangi bir nesneyle ilişkili tür bilgilerini döndürür. Herhangi bir işaretçinin (veya başvurunun) altındaki türü gerçekten istiyorsanız, işaretçilerin bir düzeyde otomatik başvuru kaldırmasına olanak tanıyan isteğe bağlı bir bağımsız değişken vardır.

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

Yeni bir adım filtresi oluşturur. Bu ad alanı, tüm kesme noktası oluşturma API'lerinin yanındadır.

  • Debugger.State.StepFilters

Kimlik, Açıklama, Tür, Desen ve IsEnabled özelliklerine sahip adım filtrelerinin listesini döndürür. Adım filtre nesnelerinde .Remove() yöntemi vardır.

clrcomposition.dll olmadan iyileştirilmiş CLR hata ayıklama deneyimi

Yeniden dağıtılabilir bileşen dbgeng.dll artık clrcomposition.dll mevcut olması gerekmeden CLR çerçeveleri için geliştirilmiş yığın yürüme desteğine sahiptir.

Rastgele geliştirmeler

  • Linux çekirdeği hata ayıklaması için daha iyi destek (özellikle 6.11+ çekirdekler için)
  • ZSTD sıkıştırılmış KDUMP sayfaları için destek

Hata düzeltmeleri

  • SOS'yi 9.0.557512 sürümüne güncelleştirin.
  • msdia140.dllyüklenirken iptal edilen imzaların denetlenmesiyle ilgili performans gerilemesi düzeltildi.
  • XSTATE bağlamı okunurken yaşanan kilitlenme giderildi.
  • Ayrıştırma Penceresi'nde devre dışı kesme noktası vurgulaması, etkin kesme noktasından ayırt edilecek şekilde düzeltildi.
  • Kayan araç penceresi kapatıldığında meydana gelen çökme sorunu giderildi.
  • Son bir izleme açıldıktan sonra zaman çizelgeleri penceresinin geçerli konumunun bazen görüntülenmemesi sorunu düzeltildi.
  • Ayrıştırma ve Bellek pencerelerinin yeni bir değer girdikten sonra bazen güncelleştirilmemesi sorunu düzeltildi.
  • Koyu temada başlık çubuğu renk düzeni düzeltildi.
  • Kesme Noktaları penceresinde, oluşturulduğunda girilen özgün ifade yerine 0x0 gösterilen ertelenen kesme noktalarının sunumu düzeltildi. Buna ek olarak, bağlı olmadığını belirten ayrı bir simgesi vardır.
  • Locals/Watch'ta görünür bir öğeye sağ tıklamanın görünümün yukarı kaydırılmasıyla ilgili bir sorun düzeltildi.
  • Natvis ile ilgili sorunlar düzeltildi, bkz. özgün hata raporunu .
  • Error getting port connector informationiletisiyle ilgili kd hata ayıklayıcı spam'i düzeltildi; orijinal hata raporuna bakın: ,.
  • Koşul yanlış olduğunda koşullu kesme noktalarını tetikleyen gc sorunu düzeltildi.
  • YMM ve ZMM yazmaçları artık bir TTD izlemesinde hata ayıklanırken görüntülenebilir.

Erişilebilirlik Düzeltmeleri

  • Yerel Ayarlar, İzleme ve Kesme Noktaları pencereleri için geliştirilmiş klavye gezintisi.
  • Şerit, YerelLer, İzleme ve Kesme Noktaları pencerelerinin görsel okunabilirliği iyileştirildi.
  • Yerel Ayarlar, İzleme ve Kesme Noktaları pencerelerinin iyileştirilmiş ekran okuyucu kullanılabilirliği
  • Yerel Ayarlar, İzleme, Kesme Noktaları'ndaki öğeleri düzenlemek, mümkün olduğunda önceki klavye odağını, seçimi ve kaydırmayı korur.
  • Windows Metin Ölçeklendirme için geliştirilmiş genel destek

Genel Kullanıcı Arabirimi Geliştirmeleri

  • Odağı komut girişi metin kutusu arasında komut çıktısı bölmesine İşaret moduna geç (komut istemi gibi) olarak taşımak için komut eklendi. Kısayol Ctrl + M
  • Kesme Noktaları penceresindeki bağlam menüsüne Ayrıştırmaya Git öğesi eklendi.
  • Yönergeye Çalıştır, Yönerge İşaretçisini Ayarla, Kaynağa Git, Kesme Noktasını Değiştir, Kesme Noktası Durumunu Değiştir için Ayrıştırma penceresine bağlam menüsü eklendi

Zaman Yolculuğu Hata Ayıklama (TTD)

1.2410.11001.0

Uyum bozucu değişiklik

  • dbghelp.dll msdia140.dll'e dinamik olarak bağlanır. Bu yalnızca msdia140.dlldahil etmeden dbghelp.dll yeniden dağıtan araçları etkilemelidir. dbghelp.dlliçeren nuget paketlerine msdia140.dll eklendiğini unutmayın.

Hata düzeltmeleri

  • Sorun düzeltildi: Uzantı galerisi işlev diğer adlarının yükleme tetikleyicilerine bağlanmaması.
  • ERROR_INTERNET_SECURITY_CHANNEL hatası alındığında simge deposunu devre dışı bırakmayın
  • İngilizce dışındaki klavye düzenleri için Komut Penceresi'nde ters eğik çizgi yazılamaması sorunu düzeltildi.
  • Kesme Noktaları, YerelLer ve İzleme pencerelerindeki metin kutusunun, metin barındırıldığı sütundan daha uzun olduğunda imlece kaydıramama sorunu düzeltildi.
  • CAB veya ZIP dökümleri için *.*.dmp (çift dönem) üzerinden *.dmp (tek dönem) önceliğini belirleyin

Erişilebilirlik Düzeltmeleri

  • Klavye aracılığıyla sütun yeniden boyutlandırma, watch/Locals pencereleri için düzeltildi.
  • WinDbgX genelinde geliştirilmiş klavye gezintisi.

1.2409.17001.0

Erişilebilirlik düzeltmeleri

Ekran okuyucu kullanarak WinDbg ile etkileşim kurarken karşılaşılan çeşitli sorunları düzelttık.

Hata düzeltmeleri

  • WinDbgX'in kaldırılmasının klasik WinDbg'nin başlatılmasını engellemesi sorunu düzeltildi.
  • Başlatma sırasında göründükten sonra WinDbgX'in yeniden boyutlandırılması sorunu düzeltildi.

Zaman Yolculuğu Hata Ayıklama (TTD)

1.2407.24003.0

Yeni Özellikler

Yeni JavaScript Betik Sağlayıcısı

Şimdi V8 tabanlı geriye dönük uyumlu yeni bir JavaScript sağlayıcısı gönderiyoruz. Bunun sonucunda arm64 konakları artık JavaScript uzantılarını kullanabilir. Arm64 kullanıcı arabirimi artık arm64 altyapısını da varsayılan olarak kullanır.

Yeni sağlayıcı tüm mimarilerde varsayılan olarak etkindir. x86 ve x64'te, .veighton ve .veightoff komutları aracılığıyla açılıp kapatılabilir. Gelecekte bir noktada bu komutlar ve eski JavaScript sağlayıcısı kaldırılacaktır.

Uzantı galerisi bildirimlerine sahip hata ayıklayıcısı uzantıları artık WinDbg şeridinin yeni Uzantılar sekmesine simgeler ekleyebilir. Bu simgelere tıklanması, belirli bir veri modeli sorgusunun görselleştirmesini tetikler. Bu genişletme yöntemi, uzantı galerisi bildirimine görünümleri ekleme yoluyla sağlanır. görünüm bir adın ve simgenin birleştirilmesini veri modeli sorgusu ve görünüm türüne bağlar. Belgeler Uzantı Galerisi Bildirim Belgeleri bulunabilir

Galeri uzantısı artık belirli özel durum parametre değerlerine göre koşullu olarak yüklenebilir. Ayrıntılar için Uzantı Galerisi Bildirim Belgeleri'e başvurun.

Belirli simgeleri hiçbir zaman indirmemek için yapılandırma seçeneği

Artık belirtilen görüntüler için simge indirmeyi atlayabilirsiniz.

Symbols yapılandırma dosyanızın DbgX.xml bölümünde simgelerin listesini ekleyebilirsiniz:

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

Hata ayıklayıcıda, indirilmeyen simgelerin geçerli listesini görüntülemek için dx Debugger.Settings.Symbols.DisabledSymbolsDownload çalıştırabilirsiniz.

Listeyi doğrudan hata ayıklayıcıdan da şu şekilde değiştirebilirsiniz:

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

ekli SourceLinktemelinde kaynakları indirmeyle ilgili hata ayıklama sorunlarına yardımcı olmak için artık komut !lmsourcesinfo module kullanarak hata ayıklayıcının kullanacağı SourceLink içeriğini görüntüleyebilirsiniz.

Genel Kullanıcı Arabirimi Geliştirmeleri

Modüller penceresi veya yığın penceresi gibi pencerelerde bazı küçük geliştirmeler yaptık:

  • Artık üst bilgi sütununa tıklayarak kılavuz görünümlerini sıralayabilirsiniz.
  • Sağ tıklama ile daha fazla eylem mevcuttur.
  • Yığın penceresi, uygun olduğunda çerçeveleri satır içi olarak gösterir.

Hata düzeltmeleri

  • 4 GB'tan büyük PDB'lerin HTTP üzerinden indirilememe sorunu düzeltildi.
    • Edge, böyle bir PDB örneğidir.
  • Hata ayıklayıcısı kimlik bilgisi sağlayıcısındaki önbelleğe alma sorunu düzeltildi (artık site başına kimlik bilgilerini önbelleğe alacak).
  • Uzantı Galerisi yük tetikleyicilerinin değerlendirilmesi sırasında oluşan hatalar düzeltildi.
  • kilitlenmeye neden olabilecek !address ile ilgili bir hata düzeltildi.
  • !heap -a -a şimdi çalışmalıdır.

TTD

Bkz. TTD Sürüm Notları, sürüm 1.11.410 için.

1.2402.24001.0

Yeni Özellikler

Canlı Linux hata ayıklama

Artık bir Linux işleminde canlı hata ayıklama yapabilirsiniz. Daha fazla bilgi için şu konulara bakın:

Linux canlı uzaktan işlem hata ayıklama

Linux sembolleri ve kaynakları

WinDbg Linux üzerinde çalışmadığından, öngörülebilir gelecek için WinDbg istemcisi windows gerektirir.

Zaman Yolculuğu ile Hata Ayıklama kullanarak yürütme alt kümesini kaydetme

Artık TTD'yi önemsediğiniz modüllere odaklama amacıyla kaydedilecek modüllerin listesini belirtebilirsiniz. Bu, kayıt ek yükünü önemli ölçüde azaltabilir. Bunu kullanmak için "Yapılandır ve Kaydet" iletişim kutusunda "Yürütmenin alt kümesini kaydet" seçeneğini işaretleyin ve kaydedilmesini istediğiniz modülleri belirtin. (aşağıda bilinen sorunlar bakınız).

Daha hassas denetim için, yeni bir işlem içi kayıt API'sini kullanarak programınızı tam olarak kaydedebilirsiniz. örnek kod ve belgeleriile nasıl olduğunu görün.

Kompakt yazmaç penceresi

Yeni yazmaç penceresi, r komutundaki çıktıya benzer. Yeni kayıt penceresinden düzenlemenin henüz desteklenmediğini unutmayın.

Bellek komutlarına e (Değerleri Girin) için yeni parametreler

Bellek komutlarına e (Değerleri Girin) artık d (Belleği Görüntüle) komutları gibi fiziksel adresleri destekliyor. Bu seçeneklerin yalnızca çekirdek modunda desteklendiğine dikkat edin:

Seçenek Açıklama
/p Görüntü için fiziksel bellek adreslerini kullanır. Aralık ile belirtilen aralık, sanal bellek yerine fiziksel bellekten alınacaktır.
/p[c] /pile aynıdır, tek fark önbelleğe alınan belleğin okunacak olmasıdır. c'nin etrafındaki parantezler dahil edilmelidir.
/p[uc] /pile aynıdır, ancak önbelleğe alınmamış bellek okunur. Uc çevresindeki köşeli ayraçlar dahil edilmelidir.
/p[wc] /pile aynı, tek farkı, birleştirilmiş yazma belleğinin okunmasıdır. Wc çevresindeki köşeli ayraçlar dahil edilmelidir.

Daha fazla bilgi için bkz. e, ea, eb, ed, eD, ef, ep, eq, eu, ew, eza (Değerleri Girin).

Hata Düzeltmeleri

  • Linux'ta Rust isim gösterimi desteği ile hata ayıklama
  • CLR hata ayıklama geliştirmeleri
    • Karışık mod yığını yürütebilme yeteneğini CLR çerçeveleri için ekle
      • ForceMixedModeStackWalker ayarı, config.xml veya DbgX.xml'ye eklendi.
      • Tek seferlik araştırmalarda veya yapılandırma ayarını değiştiremiyorsanız !forceclrmixedmodeunwind komutu eklendi.
  • Linux'ta CLR hata ayıklamasının genel iyileştirmeleri
  • LinuxKernel.js ve cpu başına değişkenlerle ilgili bir dizi sorunu düzeltme
    • LinuxKernel.js'a !runq komutu, cpu başına çekirdek zamanlayıcı çalıştırma kuyruklarının dökümünü almak amacıyla eklendi (Linux kilitlenme yardımcı programının runq komutuna benzer şekilde)
    • LinuxKernel.js'daki çeşitli komutlar çekirdek değişikliklerine uygun hale getirilerek düzeltildi: Daha yeni çekirdeklerde, zamanlayıcı ağacı ham RB düğümleri yerine önbelleğe alınmış RB düğümlerini kullanır; daha yeni çekirdeklerde all_bdevs listesi kaldırıldığı için blok cihazları artık süper bloktan (blockdev_superblock) yürütülerek erişiliyor.
  • Visual Studio'nun son sürümleri gibi çalışması için çeşitli natvis düzeltmeleri
  • Sourcelink ile eski sourceinfo'nun karşılaştırmasını tercih edin
    • pdb'den kaynak bağlantısı akışlarını görüntülemek için !lmsourcesinfo <module> komutu eklendi (sourcelink ile ilgili hata ayıklama sorunlarına yardımcı olmak için).

Bilinen sorunlar

TTD ile kaydedilecek modüllerin listesini belirtirken, birden fazla modül belirtilmesi bu sürümde çalışmaz.

1.2308.2002.0

Birçok hata düzeltmesi ve küçük iyileştirmeler.

1.2306.12001.0

Birçok hata düzeltmesi ve küçük iyileştirmeler.

1.2303.30001.0

Not

Hata ayıklayıcısı WinDbg PreviewWinDbgolarak yeniden adlandırıldı.

Windows için Hata Ayıklama Araçları ile yayımlanan eski hata ayıklayıcıya WinDbg (klasik)olarak başvurulacaktır.

ARM64'te Zaman Yolculuğu Hata Ayıklama

WinDbg yalnızca ARM64'te yerel olarak çalışmakla değil, aynı zamanda yerel ARM64 işlemlerinin Zaman Yolculuğu Hata Ayıklamasını (TTD) etkinleştirdik. Artık x64 makinenizde bile yerel ARM64 işlemlerini (ve x86 ve ARM32 işlemlerini) kaydedebilir ve bunların hatalarını kolayca ayıklayabilirsiniz. ARM64 cihazlarında x64 veya x64 özellikli (ARM64EC) işlemler için destek henüz sağlanmamıştır.

Genel TTD performansı da geliştirilmiştir ve ortak SIMD yönergelerini kullanan işlemler için kayıt ek yükü önemli ölçüde azaltılmıştır. MMX ile SSE 4.2, AVX ve AVX2 arasında değişen toplam 65 yeni yönerge iyileştirilmiştir.

Belirsiz Kesme Noktası Çözümlemesi

Belirsiz kesme noktaları, hata ayıklayıcının bir kesme noktası ifadesinin birden çok konuma çözümlendiği belirli senaryolarda kesme noktaları ayarlamasına olanak sağlar. Daha fazla bilgi için bkz. Belirsiz kesme noktası çözümlemesi.

1.2107.13001.0

WinDbg Preview araması artık normal ifadeleri kullanarak arama seçeneği de içeriyor : Regex. Ctrl+F tuşlarına basarak aramak istediğiniz pencerede Regex'i etkinleştirin, ardından arama kutusunun yanındaki .* etiketli düğmeyi değiştirin.

Kısıtlı Mod

Kısıtlı Mod, WinDbg Preview'ın yalnızca uzaktan hata ayıklama oturumlarını ve döküm dosyalarını başlatabileceği hata ayıklama oturumlarının türünü sınırlayabilen isteğe bağlı bir ayardır. Daha fazla bilgi için bkz. WinDbg - Kısıtlı Mod.

Gölgeli değişken desteği

Önceki sürümlerde WinDbg, (??) değerini değerlendirmeye veya kapsamdaki başka bir değişkenle adını paylaşan bir değişkeni görüntülemeye (dx) çalışırken "Belirsiz Simge" hataları oluşturur. Windbg artık değişken adına @n ekleyerek aynı adı paylaşan değişkenlerin belirsiz olmasını sağlar. Örneğin: foo@0, foo@1

Bu değişiklik Yerel Ayarlar penceresine de yansıtılır. Daha önce, yalnızca kapsamdaki en yakın değişken görüntülenecekti.

1.2104.13002.0

WinDbg Preview'ın kullanışlı bir üretkenlik özelliği, komut penceresindeki desenleri algılama özelliğidir. Bunu yapmak için herhangi bir metni ve bu metnin diğer tüm örneklerini vurgulanmış olarak seçin. Bu vurgulama bellek desenlerine bakarken yararlı olduğundan, sayı onaltılık, ondalık veya bilimsel gösteriminde nasıl biçimlendirilirse biçimlendirilsin, ayrıca diğer radikslere eşdeğer olan sayıları da vurgular. Numaralandırma düzenleri hakkında daha fazla bilgi için bkz. n (Sayı Tabanını Ayarla).

Örnek:

0x000001e2fb3f6160seçildiğinde, biçim ne olursa olsun diğer tüm örnekler vurgulanır.

Birden çok sayı biçimi vurgulanmış WinDbg komut penceresinin ekran görüntüsü.

Bu özellik yarı geçici vurgulamalarla da çalışır. Ctrl + Tüm örneklerini vurgulamak için bir sayıya çift tıklayın. Komut geçmişinizde birden çok önemli sayıyı bu şekilde izleyebilirsiniz (vurguyu temizlemek için Ctrl + Numaraya yeniden çift tıklayın). Son olarak, bu özellik Ctrl + F ile sayı ararken de çalışır.

Kaynak Kodu Genişletilmiş Erişimi

.srcpath, .lsrcpath (Kaynak Yolu Ayarla) kaynak yol komutu, debuginfod yeni bir etiket içerecek şekilde güncelleştirildi. Daha fazla bilgi için bkz. Kaynak Kodu Genişletilmiş Erişim.

Veri modelinde WOW süreçlerinin ev sahibi ve misafir durumları

Kullanıcılar, 64 bitlik bir bağlamdan 32 bit WOW işleminde hata ayıklarken artık veri modelinde hem konak hem de konuk durumlara erişebilir.

32 bit konuk durumu örnekleri:

dx @$curprocess.Environment

dx @$curthread.Environment

dx @$curthread.Stack

64 bit konak durumu örnekleri:

dx @$curprocess.NativeEnvironment

dx @$curthread.NativeEnvironment

dx @$curthread.NativeStack

JavaScript Hata Ayıklama geliştirmeleri

Kullanıcı arabirimine yüklenen JavaScript artık .scriptdebug komutu kullanılarak konsolunda doğrudan hata ayıklanabilir. Daha fazla bilgi için bkz. JavaScript Hata Ayıklayıcısı Betiği - JavaScript Hata Ayıklama.

Erişilebilirlik geliştirmeleri

WinDbg Preview ile engelli mühendisler için kapsayıcı bir hata ayıklayıcı oluşturmaya kararlıyız. Erişilebilirliği sürekli geliştiriyoruz. Aşağıdaki geliştirmeler yapılmıştır.

  • Komut penceresi bağlantılarına artık klavye aracılığıyla tıklanabilir (Shift+Enter)
  • Ana menünün geliştirilmiş klavye gezintisi
  • Şeridin klavye navigasyonu işlevi iyileştirildi
  • Kullanıcı arabirimi öğelerinde daha fazla karşıtlık

Time Travel Hata Ayıklayıcısı için yeni "Üzerine Yaz" veri erişim türü

Time Travel Debugger (TTD) artık bir "Üzerine yaz" veri erişim türü sağlıyor. dx @$cursession.TTD.Memory() gibi bellek sorgularının artık eski yazma değerlerini gösteren ek bir sütunu vardır.

Diğer düzeltmeler, iyileştirmeler ve güncelleştirmeler

  • Hem çekirdek hata ayıklama konağı hem de hedef USB 3.1 denetleyicileri olduğunda USB 3.1 donanım sorununu otomatik olarak algılama ve uygulama özelliği eklendi.
  • Yeni bir kullanıcı arabirimi kısayolu eklendi: Ctrl + Shift + Bir DML bağlantısının üzerine tıklamak bunu panoya kopyalar.

1.0.2007.01003

Zaman Çizelgesi Yer İşaretleri

WinDbg'deki önemli Zaman Yolculuğu konumlarına yer işareti ekleyin, böylece konumu el ile Notepad'e yapıştırmak zorunda kalmazsınız. Yer işaretleri, izlemedeki diğer olaylara göre farklı konumları bir bakışta görüntülemeyi ve bunlara açıklama eklemeyi kolaylaştırır.

Yer işaretleri için açıklayıcı bir ad sağlayabilirsiniz.

Display Greeting uygulamasındaki örnek adla ilk API çağrısı için yer işareti iletişim kutusunun ekran görüntüsü.

Görünüm > Zaman Çizelgesi'nde bulunan Zaman Çizelgesi penceresi aracılığıyla Yer İşaretlerine erişin. Yer işaretinin üzerine geldiğinizde yer işareti adı görüntülenir.

Üç yer işareti ve yer işareti adını görüntüleyen bir araç ipucu içeren WinDbg zaman çizelgesinin ekran görüntüsü.

Yer işaretini seçip tutabilir (veya sağ tıklayarak) bu konuma gidebilir, yer işaretini yeniden adlandırabilir veya silebilirsiniz.

Konuma gitme, düzenleme ve kaldırma seçeneklerinin bulunduğu yer işareti sağ tıklama menüsünün ekran görüntüsü.

Modüller Penceresi

Modülleri ve ilgili bilgileri gösteren yeni bir pencere, Görünüm şeridi aracılığıyla kullanılabilir. Görünüyor:

  • Yol konumu dahil olmak üzere modülün adı
  • Yüklenen modülün bayt cinsinden boyutu
  • Modülün yüklendiği temel adres
  • Dosya sürümü

Listelenen beş modülün görüntülendiği WinDbg Modülleri görünüm penceresinin ekran görüntüsü.

Canlı hata ayıklamada mevcut iş parçacığı adları/açıklamaları

SetThreadDescription'dan ayarlanan iş parçacığı adları artık canlı kullanıcı modu hata ayıklaması yapılırken kullanılabilir. İş parçacığı adları "~" komutu veya hata ayıklayıcı veri modeli kullanılarak kullanılabilir.

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

taşınabilir PDB desteği

Taşınabilir PDB desteği eklendi. Taşınabilir PDB (Program Veritabanı) biçimi, Ortak Dil Altyapısı (CLI) dil derleyicileri tarafından üretilen ve hata ayıklayıcılar ve diğer araçlar tarafından kullanılan hata ayıklama bilgilerinin kodlamasını açıklar. Daha fazla bilgi için bkz. Taşınabilir PDB Simgeleri.

Diğer değişiklikler ve hata düzeltmeleri

  • WinDbg artık AMD64 ve Linux çekirdek dökümü hata ayıklamasını destekliyor.
  • Zaman yolculuğu kaydı iyileştirmeleri ve diğer düzeltmeler.

1.0.1912.11001

TTD Zaman Çizelgeleri - İzlemenizdeki önemli olayların görsel bir gösterimini görüntüleyen yeni bir pencere ekledik: özel durumlar, kesme noktaları, işlev çağrıları ve bellek erişimleri. Zaman çizelgeleri otomatik olarak açılır ve özel durumlar (varsa) ve kesme noktaları görüntülenir. Daha fazla bilgi için bkz. WinDbg Preview - Zaman Çizelgesi.

Varsayılan pencere kromu geçiş yapıldı - Daha güzel bir şekilde kullanmakta olduğumuz özel pencere kromu, önemli sayıda kişi için bazı ölçeklendirme ve yeniden boyutlandırma sorunlarına neden olduğundan şimdilik kaldırmayı tercih ettik.

Dosya menüsü geliştirilmiş klavye gezintisi - Dosya menüsünde yalnızca bir klavyeyle gezinmek artık çok daha kolay.

Diğer değişiklikler ve hata düzeltmeleri

  • Hedef çalışırken yığın ve yerel ayarlar penceresi artık devre dışı bırakılacak ve hedef olmadığında "Belirtilmemiş hata" gösterilmeyecek.
  • Hangi hizmetlerin çalıştığını kolayca bulmak için ekle iletişim kutusuna bir "Hizmetler" sütunu eklendi.
  • Bağımsız değişkenlerle uygulama başlatılırken mimari algılamanın çalışmamasına neden olan bir hata düzeltildi.
  • Özel simgeler yüklendiğinde ayrıştırma penceresi iyileştirildi.
  • jsprovider.dll artık otomatik olarak yüklendiğinden betik şeridinden "JSProvider Yükle" düğmesini kaldırdık.

1.0.1908.30002

TTD Çağrıları nesnelerine yönelik iyileştirmeler - Çağrı sorguları artık parametre adlarını, türlerini ve değerlerini içerir. İşlev çağrıları için izlemeleri sorgularken, tam olarak yazılan parametreleri ve bunların değerlerini alarak sonuçları parametrelere göre filtrelemeyi kolaylaştırabilirsiniz.

Open Enclave Desteği - WinDbg Preview artık Open Enclave (OE) uygulamalarında hata ayıklayabilir, daha fazla bilgi için bkz. Open Enclave debugging).

ELF Çekirdek Dökümleri - Open Enclave uygulamasını desteklemenin bir parçası olarak WinDbg hem Enclave'ler hem de Linux uygulamalarında ELF çekirdek dökümleri, ikili dosyaları ve DWARF sembollerini (DWARF 5 şu anda desteklenmemektedir) açabilir. Windows olmayan bir uygulamadan çekirdek dökümü açarken, temel pencerelerin ve komutların tümü düzgün çalışmalıdır, ancak çoğu uzantı ve Windows'a özgü komutlar çalışmaz. ELF ve DWARF olarak sınıflandırılan dosyalar, burada tanımlanananahtar kuralları doğrultusunda sembol sunucularından indirilecektir. Kuşatmalar desteklenen tek senaryodur, ancak diğer Linux çekirdek dökümlerini açma konusunda geri bildirime açığız.

TTD Dosya biçimi değişikliği - TTD izlemeleri için dosya biçiminde ileriye dönük uyumluluğu bozan önemli bir güncelleştirme yaptık. WinDbg Preview'ın önceki sürümleri, WinDbg Preview'ın bu (ve gelecekteki) sürümleriyle kaydedilen izlemeleri açamaz, ancak bu (ve gelecekteki) sürümler hem yeni hem de eski izlemeleri açabilir.

Diğer değişiklikler

  • TTD artık dizin oluşturma sırasında potansiyel bellek sorunlarını en aza indirmek için 64-bit motorunu ve yeniden yürütme sırasında SOS sorunlarını azaltmak amacıyla uygun bit genişliğine sahip hata ayıklayıcı motorunu kullanacaktır.
  • 'dx' parametresini parametresiz çalıştırmak artık daha kolay gözatılabilirlik için kök ad alanını gösterecektir.
  • Artık ayarlar menüsünden varsayılan simgeyi ve kaynak önbellek konumunu değiştirebilirsiniz.
  • AVX-512 kaydı için geliştirilmiş destek (AVX-512 kaydı normalden daha büyük bir yavaşlığa neden olur).
  • etkinleştirdik çevrimdışı lisanslamayı.

1.0.1905.12001

SymSetDiaSession hata azaltma geliştirmeleri - Geçen ay yaptığımız düzeltme, dbgHelp'i işlemimize eklediği uygulamaların neden olduğu hatayı azaltmaya yönelik düzeltmemiz bazı senaryolarda hala çalışmıyordu. Bu konuda iyileştirmeler yaptık ve bu hatayla ilgili geri bildirimleri izlemeye devam edeceğiz.

Vurgu rengi özelleştirme - Birçok senaryoda WinDbg'nin birkaç örneğinin açık olması gerekir ve bunlar arasında gidip gelmek zor olabilir ve hangisinin "doğru" olanı olduğunu bulmak biraz zaman alabilir. Oturumları görsel olarak ayırt etmeye ve aralarındaki değişimi kolaylaştırmaya yardımcı olmak için mavi vurgu rengini değiştirme özelliğini ekledik.

Son bölümde Görünüm şeridini seçin ve Vurgu rengi için bir seçenek belirleyin. Gelecekteki oturumlar son hedeflerden başlatıldığında, tema rengi hedefin çalışma alanının bir parçası olarak kalıcı hale gelecektir.

Kaynak belirteçleştirme geliştirmeleri - Kaynak pencere artık Rust kaynak dosyalarını ve C++ SEH __try/__except/__finally/__leave belirteçleri için temel desteğe sahiptir.

Coroutine geliştirmeleri - Coroutine yerel değişkenleri ve belirli optimize edilmiş değişkenler için geliştirilmiş destek.

Varsayılan simge ve kaynak önbellek ayarı - Simgelerin önbellek konumunu değiştirmek için Hata ayıklama ayarları altındaki ayarlar menüsüne bir seçenek eklendi. Not - Bunun boş bırakılmasının kaynak yüklemesinin başarısız olmasına neden olacağı bilinen bir sorun vardır. Bunun gelecekteki bir sürümde gerçekleşmesini önlemek için doğrulama ekleyeceğiz.

-pv düzeltmeleri - bazı durumlarda -pv'nin (invaziv olmayan ekleme) çalışmasını engellemiş olabilecek bir hata düzeltildi.

1.0.1904.18001

SymSetDiaSession hatası için düzeltme - Bazı durumlarda WinDbg Preview'ın başlatılmasını engelleyen bir hatayla ilgili bir süredir raporlar aldık. Yüklemeden önce işlemimize DbgHelp'in bir sürümünü eklemeye çalışan birkaç dış uygulama vardır. Bazıları eksik işlevlere sahip bir DbgHelp sürümü kullanıyor ve bu da bu özellikleri kullanmayı denediğimizde bu hataya neden oluyor. Bunun için bir düzeltme ekledik ve yine de bunun gerçekleştiği senaryolar varsa izleme yapacağız.

yazı tipi denetimi - Yazı tipini ve yazı tipi boyutunu denetlemek için ayarlar ekledik. Biri metin pencereleri (ayrıştırma, kaynak, komut vb.) için tek aralıklı pencereler, diğeri de araç pencereleri (yerel öğeler, yığın vb.) için iki farklı ayar vardır. Gelecekte güncelleştireceğimiz bu seçeneklerden etkilenmeyecek birkaç alan var.

Vurgulama geliştirmeleri - Komut penceresindeki metnin kalıcı olarak vurgulanması artık kaynak ve not pencerelerindeki metni de vurgulayacak.

Kaynak yükleme geliştirmeleri - Kaynak dosyaları yüklemenin çalışma şeklini değiştirdik. Daha önce bir kaynak dosyayı açarken, ek komutları çalıştırma gibi altyapı işlemleri mümkün değildi veya tahmin edilemezdi. Daha iyi paralellik sağlamak ve kaynak açma işlemlerinin daha güvenilir iptalini sağlamak için yüklemenin gerçekleştiği yeri değiştirdik.

Diğer değişiklikler ve hata düzeltmeleri:

  • Kaynak pencerenin bağlam menüsüne "Ayrıştırmaya git" eklendi.
  • Ayrıştırma penceresinde "Geçerli yönergeyi takip et" seçeneğine bir onay kutusu eklendi.
  • Çok fazla metin çıkışı yaparken komut penceresinin yavaş performans göstermesine neden olan bir hata düzeltildi.
  • Visual Studio'ya benzer bir performans için page up ve page down tuşları değiştirildi.
  • Bir ASM dosyası kaynak pencerede açıldığında artık temel açıklama, dize ve yönerge vurgulama özelliğine sahip olur

1.0.1812.12001

Bu sürüm bu güncelleştirmeleri içerir.

Hata ayıklayıcısı veri modeli C++ üst bilgisi - C++ aracılığıyla hata ayıklayıcı veri modelini genişletmek için Windows SDK'sının bir parçası olarak eklenen yeni bir C++ üst bilgisi (DbgModel.h) vardır. Daha fazla bilgiyi Hata Ayıklayıcı Veri Modeli C++ Genel Bakış'de bulabilirsiniz. Bu sürüm, hata ayıklayıcısı veri modeline 'dx' komutu, JavaScript ve yeni DbgModel.h üst bilgisi aracılığıyla erişilebilen bazı daha fazla "API stili" özelliği ekleyen yeni bir uzantı içerir. Bu uzantı, Debugger.Utility.Code ad alanı ve Debugger.Utility.FileSystem ad alanıaracılığıyla yerel dosya sistemi aracılığıyla derleme ve kod yürütme hakkında bilgi içerecek şekilde veri modelini genişletmektedir.

Yapay türler uzantısı Bu yeni API uzantısıyla GitHub depomuzda yeni bir örneğimiz var - https://github.com/Microsoft/WinDbg-Samples/tree/master/SyntheticTypes. Bu JavaScript uzantısı temel C üst bilgi dosyalarını okur ve üst bilgide tanımlanan yapılar ve birleşimler için yapay tür bilgilerini tanımlar. Daha sonra dx komutuyla bellek, bu türlerle ilgili tür bilgilerini içeren bir PDB'niz varmış gibi yapılandırılmış olarak görüntülenebilir.

Diğer değişiklikler ve hata düzeltmeleri:

  • WinDbg Preview artık adımlarken kaynak pencereleri veya dağıtım penceresini ön plana getirme işlemini daha akıllıca yönetecek.
  • Başlangıçta çekirdek hata ayıklama sırasında daha önemli bilgilere sahip olmak için WinDbg Preview'ın pencere başlığı yeniden düzenlenmiştir.
  • Komut penceresindeki alternatif arka plan karşıtlığı biraz daha belirgin olmalıdır.

1.0.1810.2001

Bu sürüm bu güncelleştirmeleri içerir.

  • Dosya menüsünden veya Giriş şeridinden erişilen Yeni Ayarlar iletişim kutusu.
  • Olaylar ve özel durum ayarları iletişim kutusu. Bu menü, hata ayıklayıcının olayları ve özel durumları işleme biçimini, 'sx' komutlarının veya WinDbg'nin olay filtreleri iletişim kutusunun eşdeğerini değiştirir. Giriş şeridinde ayarlar seçin, ardından bunları yönetmek için soldaki "Olaylar ve Özel Durumlar" seçeneğine basın.
  • Daha iyi performansa sahip geliştirilmiş TTD dizin oluşturucu. Bu, TTD izleme dosyalarını dizinleme performansını artırarak dizin oluşturma işlemini çok daha hızlı (2x-10x arasında) ve dizin dosyalarını çok daha küçük (yaklaşık 50% daha küçük) hale getirir. Performans geliştirmeleri en çok 4 GB'ın üzerindeki izlemelerde veya çok sayıda CPU çekirdeğine (8+) sahip bir makine kullanıldığında fark edilir. Yeni dizin oluşturucu, çok büyük izlemelerde hata ayıklamayı daha uygun hale getirir (50 GB+).
  • Mimariyi belirtmek için yeni debugArch başlatma bayrağı. WinDbg Preview, yönetilen kodda hata ayıklamayı daha iyi desteklemek için hedefe uygun bit derinliğiyle hata ayıklayıcı altyapısını başlatmaya çalışır. Belirli bir durumda doğru bit sayısını kendi başına belirleyemediği veya belirlediklerini geçersiz kılmak isteyebileceğiniz durumlar olabilir. Hata ayıklayıcı altyapısının mimarisini denetlemek için -debugArch x86|amd64 kullanın.

Diğer değişiklikler ve hata düzeltmeleri:

  • Kayan pencere açıkken siyah çubukların tam ekran hata ayıklayıcıda görünmesine neden olan bir hata düzeltildi.
  • Sembol seçeneklerinin istemeden temizlenmesine neden olan bir hata düzeltildi.
  • Son hedeflerden başlatıldığında komut geçmişi artık korunmaktadır.
  • Veri modeli penceresinde artık değerleri düzenleyebilirsiniz.
  • Dizine alınmamış TTD izlemelerinin dizine alınmamış oldukları artık daha net bir şekilde belirtilecektir.
  • Yerel ayarlar penceresinin performansı iyileştirildi
  • Komut penceresi günlüklerini bir dosyaya kaydetmek için şerit düğmesi eklendi.
  • Eklendi. SelectMany(<projeksiyon>) yöntemini varsayılan LINQ yöntemleri kümesine ekleyin.

1.0.1807.11002

Bu sürüm bu güncelleştirmeleri içerir.

Kesme noktalarının otomatik olarak kaydedilmesi ve yüklenmesi. Bu, çalışma alanlarını değiştirmek için ilk adımdır. Bu yola, kesme noktalarını kaydedebilme ve yükleyebilme özelliğini etkinleştirerek başlıyoruz. Daha önce hata ayıkladığınız bir şeyi dosya menüsündeki "Son Kullanılanlar" sekmesinden başlatmak artık bu oturumdaki kesme noktalarını yükler. Plan, oturumlar arasında daha fazla bilgi korumak için bu işlevselliği genişletmektir. Donanım kesme noktaları (ba) ve koşullar gibi kesme noktalarındaki iş parçacığı ve işleme özel bağlamlar ile diğer çeşitli özellikler şu anda kaydedilmiyor.

Küçük değişiklikler ve hata düzeltmeleri:

  • Özel durumların ve olayların işlenmesini denetlemek için -x, -xe, -xd, -xn ve -xi komut satırı seçenekleri eklendi. Bu komut satırı seçenekleri, karşılık gelen komutlar gibi davranır.
  • Notlar penceresi artık kalın, altı çizili ve italik biçimlendirmeyi destekliyor.
  • Bazı yakınlaştırma ve kaydırma sorunları düzeltildi.
  • Komutta, bellekte, kaynaklarda veya ayrıştırılmış pencerelerde metin seçildiğinde artık seçili metnin diğer örnekleri üzerinde açık bir vurgu gösterilir.
  • Simge yüklemesini kesintiye uğratmanın oturumun geri kalanında sembol yüklemesinin başarısız olmasına neden olduğu bir hata düzeltildi.
  • Bir oturum yeniden başlatıldığında, NatVis düzgün bir şekilde yeniden yüklenecek.

1.0.1805.17002

Bu sürüm bu güncelleştirmeleri içerir.

Yeni ayrıştırma penceresi - Ayrıştırma penceresi artık şunları içerir:

  • Yukarı veya aşağı kaydırmak mümkün olduğunda sürekli olarak daha fazla ayrıştırma yükler.
  • Sayılar, kod adresleri ve opcode'lar için söz dizimi vurgulama.
  • Bir kod simgesi seçildiğinde, ayrıştırma penceresi bu konuma atlanır.
  • Sayıların üzerine geldiğinizde, bu sayıyı diğer tabanlara dönüştüren bir ipucu gösterilir.
  • Bir işlevin başlangıcını belirten başlıklar.

Daha hızlı kaynak penceresi - Kaynak penceresi daha hızlı ve daha verimli kaynak olacak şekilde güncelleştirildi.

Küçük değişiklikler ve hata düzeltmeleri:

  • Sembol önbelleğe alma ile ilgili sorunlar düzeltildi
  • Hedefte kırılma olmadığında başlangıç kesme geçişinin kullanılamadığı bazı durumlar düzeltildi.
  • Komut penceresinde sekme tuşuna basıp kullanılabilir bir şey yoksa, imleç artık giriş alanında kalır
  • WinDbg Preview artık CAB dosyalarını açarken bitlik durumunu otomatik olarak algılayacak

1.0.1804.18003

Bu sürüm bu güncelleştirmeleri içerir.

Sembol durumu ve iptal iyileştirmeleri - Hata ayıklayıcının MEŞGUL yükleme sembollerini görüntülediği zamanlar vardır ve !sym gürültülü etkin olmadan ne yaptığını ve neden yaptığını belirlemek zordur. WinDbg Preview'ı, sorunları gidermeye yardımcı olmak için sembolleri yüklerken yaptıklarıyla ilgili daha iyi iletişim sağlayacak şekilde güncelleştirdik. Tam anlamıyla neler olduğunu kolayca görmenin yanı sıra, simge iptallerini daha güvenilir hale getirecek bazı değişiklikler yaptık ve Günlükler penceresinde !sym noisy etkinleştirildiğinde genellikle çıktısı verilen bazı ayrıntılar yer alacak. Görünüm -> Günlükler'e bastığınızda, açmak ve simgeleri yeniden yüklemeye çalışmak zorunda kalmadan tam gürültülü simge yükleme çıkışını alırsınız.

Deneysel notlar penceresi - WinDbg Preview artık not almak için bir pencere içeriyor. Görünüm -> 'Notlar' simgesine tıklayarak açın. Kopyalayıp yapıştırırsanız, DML bağlantıları korunur ve komut penceresi gibi çalışmaya devam eder. Ayrıca, pencere açıkken not dosyalarını "Notlar" şeridinden kaydedebilir ve yükleyebilirsiniz.

Deneysel daha hızlı kaynak penceresi - WinDbg Preview performansını geliştirmeye yardımcı olmak için biraz daha verimli olan deneysel yeni bir kaynak penceresi vardır. Bağlam menüleri ve söz dizimi vurgulamada hâlâ birkaç eksik var, ancak bize erken geri bildirimde bulunabilmeleri için tamamlamadan önce herkese deneme seçeneği sunmak istiyoruz. Kullanmak için $UseFastSourceWindow çalıştırın. Eskisine dönmek istiyorsanız $UseMonacoSourceWindow çalıştırın. Ayar oturumlar arasında korunur; yeni sürümü edinmek için kaynak pencereleri kapatıp yeniden açmanız gerekir.

JSProvider API sürüm 1.2 - API sürüm 1.2 için destek bildiren JavaScript uzantıları için:

  • Betikten çıkan .compareTo yöntemine sahip herhangi bir nesnenin üzerinde özel bir karşılaştırıcı olur (karşılaştırma işleçleri DX değerlendiricisinde ve başka bir yerde çalışır: örneğin: IModelObject::Compare)
  • Betikten çıkarken .equals yöntemine sahip herhangi bir nesne, üzerinde özel bir eşitlik işleci bulundurur (== ve != DX değerlendiricisinde ve başka yerlerde çalışır: örneğin: IModelObject::IsEqualTo)
  • Betik içine giren yerel veya veri modeli nesnelerinde, herhangi bir özel karşılaştırıcıya veya özel eşitlik uygulamalarına erişim sağlayan .compareTo ve .equals yöntemleri bulunur.

Küçük değişiklikler ve hata düzeltmeleri:

  • .server artık kısa adlarla ilgili etki alanı sorunları yaşandığında daha kolay kullanım sağlamak için tam etki alanı adını listeleyecektir.
  • Ctrl+G artık kaynak pencerede çalışıyor.
  • Ayrıştırma penceresine adres çubuğu eklendi.
  • WinDbg Preview artık _NT_SYMBOL_PATH daha beklenen bir şekilde işleyecek.
  • -server komut satırı seçeneği eklendi.
  • TTD veri modeli sorguları artık aşamalı olarak görüntülenebilir, dolayısıyla kesintiye uğratırsanız bazı sonuçlar görmeye devam edersiniz. Bu özellik hala deneysel ve isteğe bağlıdır. etkinleştirmek için dx @$cursession.TTD.AsyncQueryEnabled = 1 çalıştırın.
  • 'dps' komutu artık başvurduğu kaynak dosyalara bağlantılar içerir.

1.1801.19001.0

Bu sürüm bu güncelleştirmeleri içerir.

Metin Vurgulama - Artık seçili metnin tüm örneklerini doğrudan hata ayıklayıcıda vurgulayabilirsiniz. Bu özelliği kullanmak için komut penceresinde bir metin seçin ve ardından komut şeridinde "Vurgula" seçeneğini belirleyin veya CTRL+ALT+H tuşlarına basın. Zaten vurgulanmış metinde bunlardan birinin kullanılması, vurgulamanın kaldırılmasına neden olur.

Komutları kullanmayı tercih ediyorsanız "$hl" komutunu kullanabilirsiniz:

$hl ["someValueHere"] - Metni vurgula (veya zaten vurgulanmışsa vurgulamayı kaldır)

$hl clearAll – Vurgulanan tüm girişleri temizle

$hl caseSensitive [1|0] - Büyük/küçük harfe duyarlı veya büyük/küçük harfe duyarlı olmayan vurgu eşleştirmesini ayarlayın (varsayılan olarak büyük/küçük harfe duyarsızdır)

Bu sürüm bazı küçük hata düzeltmelerini de içerir.

1.1712.15003.0

Bu sürüm bu güncelleştirmeleri içerir.

TTD bellek sorguları - Artık, bugünkü gibi çağrıları sorguladığınız şekilde TTD'yi bellek erişimleri için sorgulayabilirsiniz. Bu, belirli bir bellek aralığına erişen tüm okumaları, yazmaları ve yürütmeyi bulmanıza olanak tanır.

Okuma ve yazma örneği: dx @$cursession.TTD.Memory(startAddress, endAddress, "rw")

Benzersiz yürütme örneği: dx @$cursession.TTD.Memory(startAddress, endAddress, "ec")

Ayarları değişiklikleri - WinDbg Önizlemesi artık simge yolunuz ve kaynak yolunuz da dahil olmak üzere oturumlar arasında ayarları otomatik olarak kaydeder.

JavaScript Geliştirmeleri

  • JavaScript'teki 64 bit sayılar ve sayısallar artık gerçek bir 64 bit modulo işlemine izin veren bir modül yöntemi içeriyor.
  • JavaScript'te tanımlanan nesneler artık standart C++ işleçlerini veya LINQ işlemlerini kullanarak dx'te çalışacak özel bir karşılaştırılabilir veya eşitlenebilir bir kavramı uygulayabilir. Bunu kullanmak için betiğin initializeScript dizisinde "new host.apiVersionSupport(1, 2)" kaydı ekleyerek konak API'sinin yeni sürümünü desteklediğini bildirmesi gerekir. Bunu yaptıktan sonra bu işlevleri herhangi bir 'dx' veya Veri Modeli Penceresi LINQ sorgusunda kullanabilirsiniz. yöntemi .compareTo(diğer) uygularsa, karşılaştırılabilir (karşılaştırma işleçleri dx ve LINQ içinde çalışır). Yöntem "bu < diğer" gibi negatif bir değer döndürürse. Yöntem sıfır döndürürse, "this == other". Eğer yöntem pozitif bir değer döndürürse "bu > diğer". Yöntem .equals(other) uygularsa, eşlenebilir (== dx ve LINQ içinde çalışır). yöntemi true veya false döndürmelidir.

Küçük değişiklikler ve hata düzeltmeleri:

  • Yığın ve yerel ayarlar pencerelerinin önyükleme hata ayıklaması sırasında çalışmadığı bir hata düzeltildi
  • LM'nin çıktısı ProductVersion ve benzer alanları daha doğru rapor etmek için güncelleştirildi
  • TTD oturumları sırasında "geri adım at" düğmesi etkinleştirildi
  • -lsrcpath desteği eklendi
  • Yerel ayarlar, izleme ve model pencerelerindeki üst bilgiler artık aşağı kaydırıldığında yok olmuyor
  • ALT+Tabbing ile WinDbg Preview'a geri döndüğünüzde, komut penceresi imleç konumunu düzgün şekilde korur
  • Ayrıntılı mod için CTRL+ALT+V kısayolu eklendi
  • Artık komut penceresi sekmesini seçip basılı tutarak (veya sağ tıklayarak) ve "otomatik kaydırmayı kapat" seçeneğini belirleyerek komut penceresinin otomatik kaydırmasını devre dışı bırakabilirsiniz
  • Artık çalıştırılabilir dosyanın gelişmiş ayarlar sayfası aracılığıyla alt işlemlerin hatalarını ayıklayabilirsiniz.

1.0.14.0

Bu sürüm bu güncelleştirmeleri içerir.

İyileştirilmiş işlem sunucusu deneyimi - Dosya menüsünde bağlandığınız ve etkileşimde olduğunuz işlem sunucusunun eklendiğini gösteren yeni bir bildirim. Bu değişikliklerin bir parçası olarak, bir hata ayıklama oturumu sonlandırılırken işlem sunucusu bağlantısı devam eder ve Dosya menüsünde bağlantısı kesilebilir.

Görünüm şeridindeki yeni önceden ayarlanmış düzen seçenekleri - "Görünüm" şeridinde yeni bir "Düzenler" seçeneği vardır. Şu anda üç düzen vardır: varsayılan, biri ayrıştırma odaklı ve en azı.

Zaman Yolculuğu Hata Ayıklama Şeridi - Zaman Yolculuğu izinde hata ayıklarken gösterilecek gelişmiş bir Zaman Yolculuğu Şeridi bulunmaktadır.

javascript betiklerinden meta verileri - JavaScript uzantıları artık özellikler ve diğer yapılar için meta veriler döndürebilir. Bu, uzantının yardım metinleri sunabileceği, değerlerin görünüm tabanını belirleyebileceği ve daha fazlasını yapabileceği anlamına gelir. Meta veriler, Symbol.metadataDescriptor varlığı veya host.metadata.defineMetadata için açık bir çağrı yoluyla bir nesneye meta veri tanımlayıcısı yerleştirilerek sağlanır. İşlev, yinelemeli değerler ve diğer değer bağlamları host.metadata.valueWithMetadata aracılığıyla değerleri için meta veriler döndürebilir.

JavaScript API güncellemeleri - JavaScript sağlayıcısındaki API'lerde, kaynak düzeyinde bozulmalara yol açabilecek bazı değişiklikler yapıldı (yerel nesneler üzerinde öngörülen yeni yöntemler ve özellikler dahil). Mevcut uzantılar, JsProvider API'sinin yeni sürümünü desteklediğini göstermeden hataya neden olabilecek değişikliklerin hiçbirini görmez. Yeni API sürümü için destek, initializeScript tarafından döndürülen diziye bir host.apiVersionSupport kaydı yerleştirilerek ve sürüm 1.1'i destekleme talebiyle gösterilir. belki? .. sürüm 1.1 için desteği gösteren bir değerle.

API sürüm 1.1'deki değişiklikler şunlardır:

  • host.getModuleSymbol ve host.getModuleType, özel durum oluşturma yerine simgeyi bulamazsa null döndürür.
  • Tüm yerel nesneler üzerinde .targetLocation'a ek olarak adres özelliğine sahiptir. Nesnenin adresi yoksa, özelliğine erişilirken bir özel durum oluşturulur.
  • Tüm yerel nesnelerin nesnedeki özelliklere erişmek için üzerinde yeni .getObjectValue ve .setObjectValue yöntemleri vardır ve bu yöntemler nesnedeki JavaScript'in nesneye yerleştirdiği adlarla çakışabilir (örneğin: 'address') .

Ek JavaScript değişiklikleri

  • JavaScript uzantıları artık Object.defineProperty ve delete işleci aracılığıyla veri modeli nesnelerine özellik ekleyebilir ve kaldırabilir. Bir JavaScript sınıfını üst model veya tür imzası olarak eklemek veya kaydetmek, nesne modelini düzenlemenin hala tercih edilen yoludur.
  • JavaScript uzantıları artık yeni bir host.setModuleSymbol API'si aracılığıyla hata ayıklama hedefindeki modüllerdeki genel değişkenleri değiştirebilir.
  • 64 bit kitaplık türünde (örn. .add, .subtract, .çarpma, .divide, vb.) bulunan tüm matematik işlevleri artık JavaScript sayılarında da mevcuttur.
  • JavaScript işlevleri ve özellikleri artık özel bir serileştirme aracılığıyla enum türünde değerler döndürebilir. İşlev veya özellik erişimcisi, bu tür özel hazırlamayı çağırmak için host.typeSystem.marshalAs(değer, tür...) döndürebilir.
  • Betik hata ayıklayıcısındaki kesme noktası komutu artık satır/sütun konumlarına ek olarak işlev adlarında da kesilebilir.
  • JavaScript uzantılarındaki tür nesneleri, .containingModule özelliği aracılığıyla kendi içeren modüllerine erişebilir.

Küçük değişiklikler ve hata düzeltmeleri:

  • Şerit sekmelerinin koşullu biçimlendirmesi daha az kafa karıştırıcı olacak şekilde düzeltildi.
  • Performansı geliştirmek için ayrıştırmada daha katı olmak için DML'yi yeniden çalıştı.
  • CTRL+F'nin performansı ve davranışıyla ilgili çeşitli düzeltmeler.
  • TTD'yi kullanmaya çalışmadan önce yükseltilmiş modda çalıştırılmadığında bir uyarı eklendi.
  • Otomatik hedef bitlik algılamasını geçersiz kılma seçeneği eklendi.
  • Kullanılamadığında çeşitli dosya menüsü ve şerit seçenekleri devre dışı bırakıldı (döküm dosyasındayken "Git" gibi).

Bilinen sorunlar:

  • SOS, x86 izleri üzerinde çalışmaz.

1.0.13.0

Bu sürüm, Zaman Yolculuğu İzleme ekler. Zaman Yolculuğu Hata Ayıklama, bir işlemi kaydetmenize ve daha sonra hem ileri hem de geri yürütmenize olanak tanır. Time Travel Hata Ayıklama (TTD), hatayı bulana kadar sorunu yeniden oluşturmak zorunda kalmadan hata ayıklayıcı oturumunuzu "geri sarmanıza" izin vererek sorunları daha kolay ayıklamanıza yardımcı olabilir. Daha fazla bilgi için Zaman Yolculuğu Hata Ayıklama - Genel Bakışbölümüne bkz.

1.0.12.0

Bu sürüm, WinDbg Preview'ın ilk sürümüdür. WinDbg Preview'da sağlanan özellikler hakkında genel bilgi için WinDbg'nin Başlıca Özellikleri.

Ayrıca Bkz.

WinDbg – Yükleme

WinDbg – Komut satırı başlatma seçenekleri