Son kullanma tarihi geçmiş, bayatlamış bir tarayıcı kullanıyorsanız, Mercedes kullanmak yerine tosbağaya binmek gibi... Web sitelerini düzgün görüntüleyemiyorsanız eh, bi' zahmet tarayıcınızı güncelleyiniz. Modern Web standartlarını karşılayan bir tarayıcı alternatifine göz atın.
ARM64 Scalable Vector Extensions (SVE) için ilk destek eklendi. Böylece SVE kayıtlarını kullanan ARM64 hedeflerinin hata ayıklama desteği için temel altyapı oluşturuldu.
Oturum yönetimini kolaylaştırmak amacıyla "Open Workspace" ve "Save Workspace" butonları eklendi.
Sistem Tema Modu eklendi. WinDbg artık Windows'un açık/koyu tema ayarını otomatik olarak takip ediyor.
Disassembly görünümündeki CPU komutları için yardım metinleri önemli ölçüde geliştirildi ve satır içi dokümantasyon desteği artırıldı.
Hedef sistem beklenmedik şekilde yeniden başlatıldığında KDNET ters protokol yeniden bağlantı güvenilirliği geliştirildi.
kdnet.exe yapılandırma aracı artık WinDbg ile birlikte geliyor.
WinDbg için yeni "-Q" ve "-WF" komut satırı seçenekleri eklendi.
Hata Ayıklama Motoru İyileştirmeleri
Farklı hedef yapılandırmalarında kayıt durumu (XSTATE) yönetimi geliştirildi.
SIMD vektör kayıtları artık byte, word, dword ve float gibi farklı görünümlerle görüntülenebiliyor. Böylece paketlenmiş verilerin farklı formatlarda incelenmesi kolaylaştırıldı.
Uzun tam sayılar artık veri modelinde varsayılan sayı tabanına göre yazdırılıyor.
Hedef bileşim sembollerini manuel olarak açmak için yeni bir API eklendi.
Özellikle DWARF ve diğer eklenti tabanlı sembol sağlayıcılarında sembol adı arama performansı geliştirildi.
Arayüz İyileştirmeleri
.NET SDK sürümü 10.0.103'e güncellendi.
Command Window şerit menüsü simgeleri yenilendi ve yeni işlemler eklendi.
Komut penceresine yapıştırılan metinlerdeki gereksiz sondaki boşluklar artık otomatik temizleniyor.
Time Travel Debugging (TTD)
TTD sürümü 1.11.592'ye güncellendi.
Büyük boyutlu iz kayıtlarının indekslenmesi sırasında kararlılık geliştirildi. Bu değişiklik nedeniyle mevcut iz kayıtlarının yeniden indekslenmesi gerekiyor.
@$cursession.TTD.Calls() artık 32-bit assembly stub'ları için daha doğru parametre bilgileri raporluyor.
Kaydedilen süreçlerde çalıştırılabilir dosya giriş noktasının çıkış kodunun düzgün döndürülmemesine neden olan sorun düzeltildi.
Düzeltmeler
Registers penceresinde x64 Parity Flag değerinin yanlış gösterilmesine neden olan sorun düzeltildi.
Arama yolunda ilk olarak uyumsuz bir PDB bulunduğunda, debug dizinindeki gömülü PDB yolunun kullanılmamasına neden olan sorun düzeltildi.
DBI stack walker döngüye girdiğinde CLR stack walk işlemlerinde yaşanan kilitlenme sorunu düzeltildi.
CLR composition tarafında GetSymbolById fonksiyonundan dönen boş işaretçinin çökme oluşturmasına neden olan sorun düzeltildi.
Oturum geç açıldığında Command Window isteminin görünmemesine neden olan sorun düzeltildi.
Command Window giriş ve geçmiş sistemiyle ilgili çeşitli hatalar düzeltildi.
Script Editor içerisinde script hata ipuçlarının görünmemesine neden olan sorun düzeltildi.
Araç pencerelerinin kenetlenmesi sırasında oluşan çökme sorunu düzeltildi.
Bazı kayıt defteri okumalarının güncel değerleri yansıtmamasına neden olan sorun düzeltildi.
İmleç hareket ettirilirken Command Window giriş metninin sıçramasına neden olan sorun düzeltildi.
Alt+Space kısayolunun kayan pencerelerde Sistem Menüsü'nü açmamasına neden olan sorun düzeltildi.
Locals penceresinde öğeler genişletildiğinde ilgili öğenin görünüm dışına kaymasına neden olan sorun düzeltildi.
İşaretçi etiketi maskesi (pointer-tag mask) okuma özelliği etkinleştirildi.
Zaman Yolculuğu Hata Ayıklama (TTD)
TTD sürümü 1.11.567'den 1.11.584'e yükseltildi.
İndeksleme performansında ve kararlılığında büyük iyileştirmeler yapıldı; özellikle büyük izleme dosyalarında (100+ GB) 5 kata kadar hızlanma sağlandı.
Segment yazmacı üzerinden 32-bit adreslerle TEB erişimi sorunu giderildi (1.11.572).
Sistem çağrıları (syscalls) çevresinde daha doğru çağrı yığınları (callstacks) sağlandı (1.11.582).
Linux ve Platform Düzeltmeleri
Linux üzerinde CPR/EPR olay filtreleme sorunları düzeltildi.
Linux disassembly görünümünde eksik olan fonksiyon etiketleri eklendi.
CET ile derlenmiş Linux ikili dosyalarında içe aktarma fonksiyonu (import functions) çözümleme hatası giderildi.
Modül yüklemesinden sonra canlı Linux hata ayıklama oturumlarını kullanılamaz hale getiren çözümlenmemiş kesme noktası (breakpoint) hatası düzeltildi.
GDBServer üzerinden bağlanıldığında Linux'taki yerel iş parçacığı değişkenlerinin (thread local variables) görüntülenememesi sorunu giderildi.
UNIX varyantı işletim sistemlerinde long, unsigned long ve wchar_t veri tiplerinin işlenmesindeki tutarsızlıklar (LLP64 vs LP64) düzeltildi.
Diğer Hata Düzeltmeleri
Karmaşık konumlardan kaynaklanan "tür bilgisi bulunamadı" (type information not found) hataları giderildi.
Yönlendirilmiş I/O ve Unicode olmayan karakterlerdeki konsol hata ayıklayıcı satır sonlandırma sorunları çözüldü.
Debugger kapatılırken temizleme iş parçacığını bekleme sırasında oluşan kilitlenme (deadlock) hatası düzeltildi.
Hatalı format parametresi kullanımı nedeniyle variadic yazdırma fonksiyonlarında oluşan çökme giderildi.
Bu güncelleme, Windows Hata Ayıklayıcısı (Debugger) için sembol/dosya işleme, uzaktan hata ayıklama (RDP), kullanıcı arayüzü (UI) ve Canlı Linux hedefleriyle etkileşim konularında önemli iyileştirmeler ve düzeltmeler içeriyor.
Yeni Özellikler ve İyileştirmeler
Gelişmiş Dosya Seçimi: Döküm dosyalarını daha iyi hedeflemek için öncelik tabanlı dosya seçimi, CAB dosyalarını ve klasörleri kapsayacak şekilde genişletildi.
Sembol Dosyası İndirmeleri: ELF, DWARF ve Mach-O sembol dosyalarının indirilmesi, geliştirilmiş günlük kaydı ve durum mesajlarıyla iyileştirildi.
Sembol İşleme Kontrolü: DBGHELP_DIA_PATH ortam değişkeni, sembol işleme kontrolünü artırmak için artık yüklü modüllere göre öncelik alıyor.
Sembol Gezintisi: Daha iyi sembol gezintisi ve arama performansı için üye adı dizin oluşturma iyileştirmeleri yapıldı.
Hata Düzeltmeleri
Canlı Linux Hedefleri: Canlı Linux hedeflerine bellek yazma işlemlerinin başarısız olması sorunu çözüldü.
Uzantı İşlevselliği: Canlı hata ayıklama hedeflerine bağlanıldığında DAC ve SOS uzantılarının yüklenmesi ve işlevselliği düzeltildi.
Süreç Adları: Ekli süreç yürütülebilir dosyalarının, gerçek adları yerine 'imageXXXXXXXX' olarak görünmesi sorunu çözüldü.
NuGet İndirme: Negatif önbellek uygulamasından dolayı bozulan NuGet.exe indirme kodu düzeltildi.
Arayüz Gecikmeleri: exdigdbsrv kullanılırken yaşanan UI gecikmeleri giderildi.
Linux Türleri: Linux platformlarında char16_t ve char32_t türleri için tip bilgisi gösterimi düzeltildi.
Genel Arayüz (UI) İyileştirmeleri
Basitleştirilmiş Şerit (Ribbon): Şeridin dikey ayak izini azaltan yeni Basitleştirilmiş Şerit seçeneği eklendi.
Uzak Masaüstü Hızlandırma: Uzak Masaüstü Protokolü (RDP) oturumlarında çalışırken grafik donanım hızlandırması etkinleştirildi.
DPI Ölçeklemesi: Farklı monitör konfigürasyonlarında araç penceresi bağlam menüleri için DPI ölçeklemesi düzeltildi.
Hata Ayıklayıcı Günlüğü: Hata ayıklayıcı günlüğü, uzantı galerisinden ve diğer dahili işlemlerden kaynaklanan erken uygulama başlangıç girişlerini hariç tutacak şekilde temizlendi.
Uluslararası Alan Adları: Eskimiş IDNA (Uluslararası Uygulamalarda Alan Adları) teknolojisine verilen destek kaldırıldı.
Bellek Penceresi: Şerit menüden (Ribbon), herhangi bir bellek penceresi örneğini (Any Memory Window Instance) açma özelliği eklendi.
Zaman Yolculuğu Hata Ayıklama (TTD): TTD'nin değişken geçmişi, veri görselleştirmesini iyileştirmek için tablo formatı tercihine sahip olacak şekilde geliştirildi.
Çözünürlük ve Yardım: !tt komutu, argümansız çağrıldığında artık izlemenin başına gitmek yerine bir satırlık yardım ve mevcut konumu sağlıyor.
Gelişmiş Hata Ayıklama ve Performans
Enstrümantasyon Geri Çağırmaları: Hata ayıklama güvenilirliğini artırmak için süreç enstrümantasyon geri çağırmalarının (process instrumentation callbacks) çalınması engellendi.
Geliştirilmiş Değerlendirici: Belirsiz kesme noktaları (ambiguous breakpoints) için değerlendirici, daha karmaşık hata ayıklama senaryolarını ele alacak şekilde geliştirildi.
Hata Mesajları: "Hata: İşlem başarıyla tamamlandı" gibi hatalı mesajların gösterilmesi düzeltildi. Sembol çözünürlüğü etrafındaki hata metni, daha net geri bildirim sağlamak için iyileştirildi.
Dış Entegrasyon: Harici entegrasyon için deneysel Replay API SDK'sı kullanılabilir hale getirildi.
Giderilen Hatalar ve Kararlılık
Dosya ve Arama: Uzatma galerisi dosya arama sorunları, özellikle kısa dosya adlarıyla ilgili olanlar, düzeltildi.
Linux Desteği: Linux'ta düz eşleştirilmiş (flat mapped) .NET derlemeleri için PDB'lerin yüklenmesiyle ilgili sorunlar çözüldü.
Veri Yönetimi: TTD değişken geçmişinde, jeneratörleri yeniden kullanırken uygun fonksiyon yakalamalarının sağlanmasıyla oluşan bir çökme hatası giderildi.
Kararlılık: Hata ayıklama bileşenlerindeki başlatılmamış okuma hatası giderildi.
Donanım Hızlandırma Seçeneği: WinDbg için grafik donanım hızlandırmasını devre dışı bırakma seçeneği eklendi.
Yeni Özellik: frame.Attributes.SourceInformation'da .AlternateFunctions adında yeni bir özellik kullanıma sunuldu.
Giderilen Hatalar:
Kullanıcı Arayüzü (UI): Diyalog penceresi açıldıktan sonra "Hata Ayıklamayı Başlat" sayfasının yenilenmemesi sorunu düzeltildi.
Klavye ve Fare Etkileşimi: Fare tekerleğiyle sorunsuz kaydırma (smooth scrolling) özelliği düzeltildi.
Hata Ayıklama:
32-bit x86 hata ayıklama sırasında, __SEH_prolog4'ü çağıran işlev başlangıçlarında meydana gelen yanıltıcı tekrarlayan adım ilerleme (step-over) davranışı düzeltildi.
Sembol okuma, sanal bellek dökümü ve süreç oluşturma gibi konularda çeşitli hatalar giderildi.
Eklentiler: NuGet tabanlı eklenti galerileri için .AllowNugetExeUpdate ayarındaki hata ve geçersiz natvis sürüm dizeleri nedeniyle oluşan çökmeler düzeltildi.
Genel UI İyileştirmeleri:
Pencere Yönetimi: Farklı çözünürlüklerdeki monitörler arasında geçiş yaparken pencere konumlarının geri yüklenmesi iyileştirildi. WinDbg artık kenetlenmiş (snapped) konumları da kaydediyor ve geri yüklüyor.
Kaydırma: Shift tuşuna basılı tutarak fare tekerleğiyle yatay kaydırma özelliği eklendi.
Pencere Güncellemesi: "Klasör Aç" seçicisi, modern diyalog penceresini kullanacak şekilde güncellendi.
Konsol Modu Hata Ayıklayıcıları: WinDbg artık konsol modu hata ayıklayıcılarıyla (cdb.exe, ntsd64.exe, kd.exe) birlikte geliyor! İkili dosyaları birbirinden ayırmak ve mevcut araç kopyalarıyla çakışmamak için, dosyalara mimari adları eklendi:
cdbARM64.exe / cdbX64.exe / cdbX86.exe
kdARM64.exe / kdX64.exe / kdX86.exe
ntsdARM64.exe / ntsdX64.exe / ntsdX86.exe
Veri Modeli Pencere Başlığı Özelleştirme: Veri Modeli araç penceresinin başlığı $OpenDmoToolwindow komutu aracılığıyla özelleştirilebilir ve başlık çubuğu bağlam menüsünden de değiştirilebilir.
Paralel Sembol İndirmeleri: Sembol dosyalarının paralel HTTP indirmelerini etkinleştiren yeni bir hata ayıklayıcı ayarı eklendi. Bu seçenek varsayılan olarak etkindir.
Hata Düzeltmeleri:
Komut satırı (-z) aracılığıyla açılan döküm dosyaları için hedef yolun nasıl kaydedildiği düzeltildi, böylece son kullanılanlar menüsünden başarıyla açılabilir.
Script Editor penceresindeki bir çökme düzeltildi.
Kaynak Penceresi'nde açılan kaynak dosyalarındaki tutarsız satır sonlarını WinDbg'nin ele alış biçimi düzeltilerek kaynak dosyalarının daha tutarlı bir görünümü sağlandı.
Yeni paralel indirme özelliği kullanılırken HTTP sembol sunucuları için kimlik bilgilerinin yenilenmemesi sorunu giderildi.
JavaScript uzantılarında veri modeli nesnelerinin özelliklerinin düzgün bir şekilde numaralandırılamaması sorunu düzeltildi.
Sütun metninin sürükle ve bırak yöntemiyle yeniden sıralandığında kaybolması sorunu giderildi.
Komut satırı seçenekleri aracılığıyla olay filtrelemesinin başlangıçta hata ayıklama hedefine uygulanmaması sorunu düzeltildi.
Bazen bir araç penceresinin kenarından ayrılmasının boş içerikle sonuçlanması sorunu giderildi.
ARM64 makinelerde X64 emüle edilmiş işlemlerin minidump'larının hata ayıklanamaması sorunu düzeltildi.
Belirsiz kesme noktalarının hata ayıklayıcıyı çökertmesi sorunu giderildi.
Canlı bir Linux işlemini hata ayıklarken GDBServer'ın işlem çıkışında çökmesi sorunu düzeltildi.
JavaScript uzantılarını (.scriptdebug) hata ayıklamayla ilgili çoklu sorunlar düzeltildi, buna özelliklerin daha iyi numaralandırılması ve bir çökme sorununun giderilmesi de dahil.
Genel UI İyileştirmeleri:
Komut önerisi açılır penceresi, imlece hizalanır ve imleçten önceki her şey yerine yalnızca önerilen tamamlamaları gösterir.
Hata ayıklama hedefi başlatma hata iletişim kutusu daha fazla ayrıntı sağlar ve döküm dosyası açılamayan hatalar için, açılamayan döküm dosyası sorun gidericisine bir köprü bağlantısı sağlar.
Araç penceresi başlık çubukları, yerleşik sekme ile aynı bağlam menüsüne sahiptir.
Locals, Watch ve Model pencerelerinde görsel iyileştirmeler yapıldı.
Time Travel Debugging (TTD) 1.11.532 sürümüne güncellendi. Daha fazla ayrıntı için TTD Sürüm Notlarına bakabilirsiniz.
Komut giriş istemi, ilk karakter olarak . (nokta), ! (ünlem) veya $ (dolar işareti) yazıldığında otomatik olarak önerilen tamamlamaları gösterecektir.
Öneriler, Ctrl + Boşluk komut kısayoluyla da çağrılabilir.
Anlık Görüntü Hata Ayıklama:
Yerel olarak canlı süreçlerde hata ayıklarken, hata ayıklayıcı, sürecin anlık görüntülerini alabilir ve "Uzantılar" sekmesindeki simgeler aracılığıyla anlık görüntüler ve canlı süreç arasında geçiş yapabilir.
Benzer şekilde, hata ayıklayıcı, "Uzak hata ayıklayıcıya bağlan" bölümündeki bir anlık görüntüid=<onaltılık süreç kimliği> protokol dizesi aracılığıyla bir sürecin anlık görüntüsüne, süreci askıya almadan bağlanabilir.
Yeni Veri Modeli API'leri:
Debugger.Utility.Symbols.GetTypeInformation:
Geçirilen herhangi bir nesneyle ilişkili tür bilgilerini döndürür.
İşaretçilerin (veya referansların) altındaki türü gerçekten istiyorsanız, isteğe bağlı bir bağımsız değişken, işaretçilerin otomatik olarak (bir seviye) başvurularının kaldırılmasına izin verir.
Yeni bir adım filtresi oluşturur. Tüm kesme noktası oluşturma API'lerinin yanında bu ad alanındadır.
Debugger.State.StepFilters:
Id, Description, Type, Pattern ve IsEnabled özelliklerine sahip adım filtrelerinin listesini döndürür. Adım filtresi nesnelerinde bir .Remove() yöntemi bulunur.
clrcomposition.dll Olmadan Geliştirilmiş CLR Hata Ayıklama Deneyimi:
Yeniden dağıtılabilir bileşen dbgeng.dll, clrcomposition.dll'nin mevcut olmasına gerek kalmadan CLR çerçeveleri için geliştirilmiş yığın yürüyüşü desteğine sahiptir.
Rastgele İyileştirmeler:
Linux çekirdeği hata ayıklaması için daha iyi destek (özellikle 6.11+ çekirdekleri için).
ZSTD sıkıştırılmış KDUMP sayfaları için destek.
Hata Düzeltmeleri:
SOS, 9.0.557512 sürümüne güncellendi.
msdia140.dll yüklenirken iptal edilen imzaların kontrol edilmesindeki performans düşüşü düzeltildi.
XSTATE bağlamı okunurken oluşan çökme düzeltildi.
Devre dışı bırakılmış kesme noktası vurgulamasının, Etkin kesme noktasından farklılaşması için Demontaj Penceresinde düzeltildi.
Kayar bir araç penceresi kapatılırken oluşan çökme düzeltildi.
Zaman Çizelgeleri penceresi geçerli konumunun, son bir izleme açıldıktan sonra bazen doldurulmadığı bir sorun düzeltildi.
Demontaj ve Bellek pencerelerinde bazen yeni bir değer girildikten sonra güncellenmediği bir sorun düzeltildi.
Koyu temada başlık çubuğu renk şeması düzeltildi.
Konumun, oluşturulduğunda girilen orijinal ifade yerine 0x0 gösterdiği Kesme Noktaları penceresinde ertelenmiş kesme noktalarının sunumu düzeltildi. Ek olarak, bağlanmadığını gösteren farklı bir simgeye sahiptir.
Yereller/İzleme'de görünür bir öğeye sağ tıklamanın görünümün yukarı kaymasına neden olduğu bir sorun düzeltildi.
natvis ile ilgili sorunlar düzeltildi, orijinal hata raporuna bakın.
kd hata ayıklayıcısının Bağlantı noktası bağlayıcı bilgilerini alma hatası mesajıyla spam yapması düzeltildi, orijinal hata raporuna bakın.
Koşul yanlış olduğunda gc'nin koşullu kesme noktalarını tetiklemesiyle ilgili bir sorun düzeltildi.
TTD izlemesinde hata ayıklarken YMM ve ZMM kayıtları artık görüntülenebilir.
Erişilebilirlik Düzeltmeleri:
Yereller, İzleme ve Kesme Noktaları pencereleri için geliştirilmiş klavye navigasyonu.
Şerit, Yereller, İzleme ve Kesme Noktaları pencerelerinin geliştirilmiş görsel okunabilirliği.
Yereller, İzleme ve Kesme Noktaları pencerelerinin geliştirilmiş ekran okuyucu kullanılabilirliği.
Yereller, İzleme, Kesme Noktalarında öğeleri düzenlemek, mümkün olduğunda önceki klavye odağını, seçimini ve kaydırmasını koruyacaktır.
Windows Metin Ölçeklendirme için genel destek geliştirildi.
Genel Kullanıcı Arayüzü İyileştirmeleri:
Komut giriş metin kutusu ile komut çıkış bölmesi arasında odağı değiştirmek için İşaretleme modunu değiştir (komut istemi gibi) komutu eklendi. Kısayol Ctrl + M'dir.
Linux hata ayıklamada Rust isim çözümlemesi desteği,
CLR hata ayıklamada iyileştirmeler,
CLR karelerinde karışık mod yığın yürütmeyi zorlamayı ekle,
config.xml veya DbgX.xml dosyasına eklenen ForceMixedModeStackWalker ayarı,
Ayrıca, bir defalık incelemeler veya yapılandırma ayarını değiştiremiyorsanız !forceclrmixedmodeunwind komutu eklendi.
Linux'ta CLR hata ayıklamada genel iyileştirmeler,
LinuxKernel.js ve cpu başına değişkenlerle ilgili çeşitli sorunlar düzeltildi,
LinuxKernel.js'ye, cpu başına kernel zamanlayıcı çalışma sıralarını dökebilmek için (Linux çökme aracının runq komutuna benzer şekilde) !runq komutu eklendi,
LinuxKernel.js'deki çeşitli komutlar, çekirdek değişikliklerine göre 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 yoktur, bu nedenle blok cihazları artık süper bloktan yürünür (blockdev_superblock),
Daha yeni Visual Studio sürümleri gibi çalışmak için çeşitli natvis düzeltmeleri,
Sourcelink yerine eski sourceinfo tercih edilir,
Pdb'den sourcelink akışlarını görüntülemek için !lmsourcesinfo <module> komutu eklendi (sourcelink ile ilgili sorunları ayıklamaya yardımcı olmak için).