Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Logo WinDbg yang sedang diperiksa oleh kaca pembesar terhadap bit-bit.
Artikel ini menyediakan informasi tentang apa yang baru di WinDbg. Versi sebelumnya dirilis sebagai WinDbg Preview.
Versi 1.2601.12001.0
Penyempurnaan UI Umum
- Ditingkatkan ke .NET 10
- Telah dilakukan pemutakhiran pada Jendela Skrip untuk menggunakan editor Monaco terbaru (0.55.1)
- Menambahkan tombol Urungkan/Ulangi ke tab pita Skrip
- Peningkatan fokus selama navigasi keyboard antar jendela alat
- Memperbaiki masalah kecil dengan pengguliran dan pilihan di jendela Pembongkaran
- Memperbaiki masalah di mana jendela register akan menampilkan nilai yang berbeda dari perintah register
- Memperbaiki beberapa masalah resolusi DPI tinggi
- Periksa dan laporkan usia debugger, beri peringatan jika debugger "terlalu tua".
- Memperbaiki crash ketika mode grafik dipilih di jendela Model yang dibuka untuk kueri kosong.
- Menerapkan log crash-safe untuk WinDbg
Penyempurnaan Mesin Penelusuran Kesalahan
- Peningkatan performa pencarian nama simbol yang tidak ditemukan (terutama dalam DWARF dan plug-in lainnya)
- Menambahkan pemeriksaan null pada handler OnTargetCompositionEvent
- Mengaktifkan pembacaan masker pointer-tag
Debug Perjalanan Waktu (TTD)
- TTD versi 1.11.567 -> 1.11.584
- Beberapa peningkatan untuk meningkatkan performa dan ketahanan pengindeksan, termasuk mempercepat hingga 5x untuk jejak besar (lebih dari 100 GB).
- Telah diperbaiki masalah yang dilaporkan pelanggan: mengakses TEB melalui register segmen dengan menggunakan alamat 32-bit, sekarang berfungsi. (1.11.572)
- Callstack yang lebih akurat di sekitar syscalls. (1.11.582)
Perbaikan Kesalahan
- Memperbaiki kesalahan "informasi jenis tidak ditemukan" karena penanganan lokasi kompleks yang tidak tepat.
- Menyelesaikan masalah penghentian baris debugger konsol dengan I/O yang dialihkan dan karakter non-Unicode.
- Memperbaiki pemfilteran event CPR/EPR pada Linux
- Memperbaiki label fungsi yang hilang dalam tampilan pembongkaran untuk Linux
- Memperbaiki resolusi fungsi impor pada biner Linux yang dikompilasi dengan CET
- Memperbaiki titik henti yang tidak terselesaikan yang menyebabkan sesi debug Linux langsung menjadi tidak dapat digunakan setelah pemuatan modul
- Memperbaiki masalah variabel lokal thread yang tidak dapat dilihat di Linux saat terhubung melalui GDBServer
- Memperbaiki crash overlay halaman gambar ELF saat layanan memori dari target dasar tidak menerapkan informasi memori.
- Memperbaiki crash fungsi cetak variadik dalam debugger karena penggunaan parameter format yang tidak tepat
- Memperbaiki inkonsistensi dalam menangani long, unsigned long, dan wchar_t pada OS varian UNIX (LLP64 v. LP64)
- Memperbaiki deadlock saat menunggu thread pembersihan selama penonaktifan debugger
1.2511.21001.0
Fitur baru
- Pemilihan file yang ditingkatkan dengan penanganan berbasis prioritas kini diperluas ke file dan folder CAB untuk penargetan file dump yang lebih baik.
- Pengunduhan file simbol ELF, DWARF, dan Mach-O yang disempurnakan dengan pengelogan dan pesan status yang disempurnakan
- Variabel lingkungan DBGHELP_DIA_PATH sekarang diutamakan daripada modul yang saat ini dimuat untuk pengendalian penanganan simbol yang lebih baik.
- Peningkatan pengindeksan nama anggota untuk navigasi simbol dan performa pencarian yang lebih baik
Perbaikan bug
- Mengatasi masalah di mana penulisan memori ke target Linux langsung akan gagal
- Memperbaiki pemuatan dan fungsionalitas ekstensi DAC dan SOS saat terhubung ke target debugging langsung
- Mengatasi masalah ketika berkas eksekusi proses yang dilampirkan muncul sebagai 'imageXXXXXXXX' daripada nama sebenarnya.
- Memperbaiki kode unduhan NuGet.exe yang dipecah oleh implementasi cache negatif
- Memperbaiki penundaan UI saat menggunakan exdigdbsrv
- Menangani pengecualian WMI dari pemeriksa kompatibilitas solusi USB 3.1
- Menghapus peringatan yang salah (C6518) dari anotasi wdbgexts.h SAL
- Tampilan informasi jenis tetap untuk
char16_tdanchar32_tjenis pada platform Linux
Penyempurnaan antarmuka pengguna umum
- Tambahkan opsi Pita Sederhana baru, yang mengurangi jejak vertikal Pita
- Mengaktifkan akselerasi perangkat keras grafis saat berjalan dalam sesi Protokol Desktop Jarak Jauh (RDP)
- Peningkatan performa refresh di jendela Pembongkaran
- Memperbaiki penskalaan DPI untuk menu konteks jendela alat di berbagai konfigurasi monitor
- Membuat informasi versi dapat dipilih di halaman Tentang untuk penyalinan yang lebih mudah
- Menghapus dukungan untuk teknologi IDNA (Nama Domain Internasional dalam Aplikasi) yang usang
- Membersihkan log debugger untuk mengecualikan entri tahap awal startup aplikasi dari galeri ekstensi dan operasi internal lainnya
Penelusuran kesalahan perjalanan waktu (TTD)
- 1.11.553 -> 1.11.567
1.2510.7001.0
Antarmuka Pengguna & Peningkatan Pengalaman
- Buka Instans Jendela Memori apa pun dari Pita
Penelusuran Kesalahan & Peningkatan Performa
- Mencegah pencurian panggilan balik instrumentasi proses untuk meningkatkan keandalan penelusuran kesalahan
- Riwayat variabel Time Travel Debugging (TTD) yang disempurnakan dengan preferensi format tabular untuk visualisasi data yang lebih baik
- Memperbaiki crash dalam riwayat variabel saat menggunakan kembali generator dengan memastikan tangkapan fungsi yang tepat
- Evaluator yang ditingkatkan untuk titik henti ambigu untuk menangani skenario penelusuran kesalahan yang lebih kompleks
- Memperbaiki tampilan kolom Publisher kosong untuk aplikasi penyimpanan dan proses PLM
Pembaruan API TTD & Pemutaran Ulang
- Memperbarui perintah
!ttuntuk memberikan bantuan singkat dan posisi saat ini ketika dipanggil tanpa argumen, bukan berpindah ke awal pelacakan. - Menambahkan ketersediaan Replay API SDK eksperimental untuk integrasi eksternal
- Metode model data riwayat variabel yang diperbarui untuk akses programatik yang lebih baik
- Memperbaiki berbagai pengoptimalan operasi pemutaran ulang TTD dan peningkatan dukungan panggilan balik
Perbaikan Bug & Stabilitas
- Memperbaiki pelaporan kesalahan yang keliru yang menunjukkan "kesalahan: Operasi berhasil diselesaikan"
- Mengatasi masalah pemrosesan URL host dalam perintah fasttfgitview
- Teks kesalahan yang disempurnakan di sekitar resolusi simbol untuk memberikan umpan balik yang lebih jelas
- Memperbaiki masalah pemuatan PDB untuk rakitan .NET yang dipetakan datar di Linux
- Telah menyelesaikan bug pembacaan tidak terinisialisasi dalam komponen debugging
- Memperbaiki masalah pencarian file galeri ekstensi dengan nama file pendek
1.2508.27001.0
Fitur baru
- Menambahkan opsi untuk menonaktifkan akselerasi perangkat keras grafis untuk WinDbg.
- Menambahkan properti baru
.AlternateFunctionspada<frame>.Attributes.SourceInformation.
Perbaikan bug
- Memperbaiki masalah di mana halaman Mulai Debugging tidak disegarkan setelah membuka dialog.
- Memperbaiki masalah pada item menu tab yang terhubung ke perangkat yang tidak dapat diakses oleh automasi antarmuka pengguna.
- Memperbaiki masalah di mana input perintah yang belum diterapkan terhapus saat menjelajahi riwayat perintah.
- Memperbaiki penanganan roda mouse untuk menggulir dengan benar (tikus dengan roda halus dan trackpad).
- Memperbaiki perilaku langkah atas rekursif yang menyesatkan dalam penelusuran kesalahan x86 32-bit ketika prolog fungsi yang disebut
__SEH_prolog4. - Memperbaiki bug dalam
.AllowNugetExeUpdatepengaturan untuk galeri ekstensi berbasis NuGet. - Memperbaiki bug saat membaca simbol DWARFv5 di sekitar
.debug_namestabel dan indeks nama. - Perilaku langkah-dalam yang dikoreksi untuk baris sumber dengan beberapa panggilan yang difilter langkah.
- Memperbaiki kerusakan yang disebabkan oleh format versi yang tidak valid
natvis. - Memperbaiki transmisi blok lingkungan untuk
CreateProcessWdalam penelusuran kesalahan jarak jauh. - Diperbaiki perintah
!percpudan!allpercpuuntuk pointer CPU yang dialokasikan secara dinamis melaluialloc_percpudi kernel Linux. - Memperbaiki masalah penomoran CPU di sesi debug kernel Linux.
- Memperbaiki label fungsi jendela Pembongkaran yang hilang untuk target simbol database non-program (PDB).
- Memperbaiki penanganan relokasi tempat penampung di biner ELF.
- Perbaikan terhadap kesalahan "double free" dalam pengelolaan simbol DWARF dari
DW_OP_fbreg. - Memperbaiki regresi dalam kode pengumpulan cadangan yang mencegah pengumpulan cadangan memori penuh untuk proses yang ditiru x64-on-ARM64.
Penyempurnaan antarmuka pengguna umum
- Melakukan penyempurnaan pada cara WinDbg memulihkan posisi jendela saat Anda mengubah monitor resolusi yang berbeda. WinDbg juga sekarang menyimpan dan memulihkan posisi yang di-snap.
- Menerapkan pengguliran horizontal dengan menggunakan roda mouse saat Anda menahan tombol Shift.
- Memperbarui pemilih Buka Folder untuk menggunakan dialog modern.
1.2506.12002.0
Fitur baru
WinDbg sekarang disertakan dengan debugger mode konsol (cdb.exe / ntsd64.exe / kd.exe). Untuk membedakan biner satu sama lain, dan untuk tidak mengganggu salinan alat yang ada, biner menyertakan nama arsitektur:
- cdbARM64.exe / cdbX64.exe / cdbX86.exe
- kdARM64.exe / kdX64.exe / kdX86.exe
- ntsdARM64.exe / ntsdX64.exe / ntsdX86.exe
Fitur lainnya:
- Judul jendela alat model data dapat disesuaikan melalui
$OpenDmoToolwindowperintah dan juga dapat diubah melalui menu konteks bilah judul. - Pengaturan debugger baru untuk mengaktifkan unduhan HTTP paralel dari file simbol. Opsi ini diaktifkan secara default.
Perbaikan bug
- Memperbaiki bagaimana jalur target disimpan untuk file cadangan yang dibuka melalui baris perintah (
-z) sehingga Anda dapat membukanya dengan sukses dari menu Terbaru . - Memperbaiki crash di jendela Editor Skrip .
- Memperbaiki cara WinDbg menangani akhiran baris yang tidak konsisten dalam file sumber yang dibuka di jendela Sumber untuk memberikan tampilan file sumber yang lebih konsisten.
- Memperbaiki masalah di mana kredensial tidak diperbarui untuk server simbol HTTP saat Anda menggunakan fitur unduhan paralel baru.
- Memperbaiki masalah di mana properti objek model data tidak dijumlahkan dengan benar dalam ekstensi JavaScript.
- Memperbaiki masalah di mana teks kolom menghilang saat disusun ulang dengan cara menyeret.
- Mengatasi masalah di mana pengaturan pemfilteran peristiwa melalui opsi baris perintah tidak diterapkan pada target debug saat startup.
- Memperbaiki masalah di mana terkadang ketika melepas jendela alat mengakibatkan konten kosong.
- Memperbaiki masalah di mana minidump dari proses yang ditimulasi X64 pada komputer ARM64 tidak dapat di-debug.
- Memperbaiki masalah di mana titik henti ambigu menyebabkan debugger crash.
- Memperbaiki masalah di mana GDBServer mengalami crash saat proses keluar saat men-debug proses Linux langsung.
- Memperbaiki beberapa masalah yang terkait dengan penelusuran kesalahan ekstensi JavaScript (
.scriptdebug), termasuk enumerasi properti yang lebih baik dan mengatasi masalah kegagalan.
Penyempurnaan antarmuka pengguna umum
- Menyelaraskan pop-up perintah saran dengan kursor. Sekarang hanya menampilkan saran penyelesaian, bukan semua hal sebelum kursor.
- Menyediakan detail lebih lanjut untuk dialog kesalahan target debug yang terbuka. Untuk kegagalan pembuangan terbuka, berikan hyperlink ke file TSG yang gagal dibuka.
- Memberi bilah judul jendela alat menu konteks yang sama dengan tab dock-nya.
- Melakukan penyempurnaan visual pada jendela Lokal, Tonton, dan Model .
- Pembaruan Debugging Perjalanan Waktu (TTD) ke versi 1.11.532. Untuk informasi selengkapnya, lihat catatan rilis TTD.
1.2502.25002.0
Fitur baru
Jendela perintah IntelliSense
Perintah input secara otomatis menunjukkan penyelesaian yang disarankan ketika karakter pertama yang di ketik adalah . (titik), ! (bang), atau $ (tanda dolar).
Saran juga dapat dipanggil dengan pintasan perintah Ctrl+Spacebar.
Penelusuran kesalahan rekam jepret
Ketika WinDbg men-debug proses langsung secara lokal, WinDbg juga dapat mengambil cuplikan dari proses tersebut. Untuk beralih antara rekam jepret dan proses langsung, gunakan ikon pada tab Ekstensi .
Demikian pula, WinDbg dapat mengaitkan dengan rekam jepret proses tanpa menangguhkannya melalui snapshot:pid=<process pid in hex> string protokol di Connect to remote debugger.
API model data baru
Debugger.Utility.Symbols.GetTypeInformationMengembalikan informasi jenis yang terkait dengan objek apa pun yang diteruskan. Argumen opsional memungkinkan dereferensi otomatis (satu tingkat) pointer jika Anda ingin tipe di bawah penunjuk atau referensi apa pun.
Debugger.Utility.Control.CreateStepFilter(<Type>, <Pattern>)Membuat filter langkah baru yang terletak di namespace di samping semua API pembuatan titik henti.
Debugger.State.StepFiltersMengembalikan daftar filter langkah yang memiliki properti
Id, ,DescriptionType,Pattern, danIsEnabled. Ada metode.Remove()pada objek filter langkah.
Peningkatan pengalaman debugging CLR tanpa clrcomposition.dll
Komponen dbgeng.dll yang dapat didistribusikan ulang meningkatkan dukungan penelusuran tumpukan untuk bingkai runtime bahasa umum (CLR) tanpa perlu clrcomposition.dll ada.
Peningkatan acak
- Dukungan yang ditingkatkan untuk debugging kernel Linux (terutama untuk 6.11+ kernel).
- Menambahkan dukungan untuk halaman KDUMP yang terkompresi oleh ZSTD.
Perbaikan bug
- Memperbarui sistem operasi server (SOS) ke versi 9.0.557512.
- Memperbaiki regresi performa dalam memeriksa tanda tangan yang dicabut saat memuat msdia140.dll.
- Memperbaiki crash saat membaca konteks XSTATE.
- Memperbaiki penyorotan titik henti yang dinonaktifkan di jendela Pembongkaran untuk membedakan dari titik henti yang diaktifkan.
- Memperbaiki masalah crash saat Anda menutup jendela alat yang mengambang.
- Memperbaiki masalah di mana posisi jendela Garis Waktu saat ini tidak selalu terisi setelah membuka jejak terbaru.
- Memperbaiki masalah di jendela Pembongkaran dan Memori , yang tidak selalu diperbarui setelah nilai baru dimasukkan.
- Memperbaiki skema warna bilah judul dalam tema gelap.
- Memperbaiki presentasi titik henti yang ditangguhkan di jendela Titik Henti tempat Lokasi ditampilkan
0x0alih-alih ekspresi asli yang dimasukkan saat dibuat. Ini juga memiliki ikon yang berbeda, yang menunjukkan bahwa itu tidak terikat. - Memperbaiki masalah di jendela Lokal dan Tonton tempat mengklik kanan item yang terlihat menyebabkan tampilan digulir ke atas.
- Telah memperbaiki masalah pada
natvis. Untuk informasi selengkapnya, lihat laporan bug asli. - Mengatasi spam debugger dengan pesan
kd. Untuk informasi selengkapnya, lihat laporan bug asli. - Memperbaiki masalah dengan
gcyang memicu titik henti kondisi ketika kondisinya tidak terpenuhi. - Memperbaiki masalah sehingga register YMM dan ZMM sekarang dapat dilihat saat Anda men-debug jejak TTD.
Perbaikan aksesibilitas
- Navigasi keyboard yang disempurnakan untuk jendela Lokal, Tonton, dan Titik Henti .
- Peningkatan keterbacaan visual pita dan jendela Lokal, Tonton, dan Titik Henti .
- Meningkatkan kegunaan pembaca layar dari jendela Lokal, Tonton, dan Titik Henti .
- Mempertahankan fokus, pemilihan, dan gulir keyboard sebelumnya, jika memungkinkan, untuk mengedit item di jendela Lokal, Tonton, dan Titik Henti .
- Peningkatan dukungan umum untuk penskalaan teks Windows.
Penyempurnaan antarmuka pengguna umum
- Menambahkan perintah untuk memindahkan fokus dari kotak teks input perintah ke panel keluaran perintah sebagai mode Penanda Beralih (seperti pada prompt perintah). Pintasannya adalah Ctrl+M.
- Menambahkan item menu konteks Pindah ke Disassembly ke jendela Titik Henti.
- Menambahkan menu konteks ke jendela Pembongkaran untuk Jalankan ke Instruksi, Atur Penunjuk Instruksi, Buka Sumber, Alihkan Titik Henti, dan Alihkan status Titik Henti .
Penelusuran Kesalahan Perjalanan Waktu
- Diperbarui ke versi 1.11.481.
- Untuk informasi selengkapnya, lihat catatan rilis TTD.
1.2410.11001.0
Perubahan signifikan
Sekarang dbghelp.dll terhubung secara dinamis ke msdia140.dll. Perubahan ini hanya boleh memengaruhi alat yang mendistribusikan ulang dbghelp.dll tanpa juga menyertakan msdia140.dll. Paket NuGet yang menyertakan dbghelp.dll juga menyertakan msdia140.dll.
Perbaikan bug
- Memperbaiki masalah di mana alias fungsi galeri ekstensi tidak terikat ke pemicu beban.
- Memperbaiki masalah di mana penyimpanan simbol tidak lagi tidak berfungsi saat kesalahan
ERROR_INTERNET_SECURITY_CHANNELditerima. - Memperbaiki masalah di mana garis miring terbalik tidak bisa ditik di jendela Command untuk tata letak keyboard non-bahasa Inggris.
- Memperbaiki masalah di mana kotak teks edit di jendela Lokal, Tonton, dan Titik Henti tidak akan menggulir ke kursor saat teks lebih panjang dari kolom tempatnya dihosting.
- Diprioritaskan *.dmp (satu periode) selama *.*.dmp (periode ganda) untuk cadangan CAB atau ZIP.
Perbaikan aksesibilitas
- Memperbaiki perubahan ukuran kolom melalui keyboard untuk jendela Lokal dan Tonton .
- Navigasi keyboard yang disempurnakan pada seluruh bagian dari WinDbgX.
1.2409.17001.0
Perbaikan aksesibilitas
Memperbaiki beberapa masalah saat Anda berinteraksi dengan WinDbg dengan menggunakan pembaca layar.
Perbaikan bug
- Memperbaiki masalah di mana menghapus instalan WinDbgX mencegah pembukaan WinDbg (Klasik).
- Memperbaiki masalah di mana WinDbgX akan mengubah ukuran setelah muncul saat dibuka.
Penelusuran Kesalahan Perjalanan Waktu
- Diperbarui ke versi 1.11.429.
- Untuk informasi selengkapnya, lihat catatan rilis TTD.
1.2407.24003.0
Fitur baru
Penyedia skrip JavaScript baru
Kami sekarang mengirimkan penyedia JavaScript baru yang kompatibel dengan versi lama berdasarkan V8. Akibatnya, host ARM64 sekarang dapat menggunakan ekstensi JavaScript. UI ARM64 juga sekarang default ke mesin ARM64.
Penyedia baru diaktifkan secara default pada semua arsitektur. Pada x86 dan x64, dapat dihidupkan atau dimatikan melalui .veighton perintah dan .veightoff . Di masa mendatang, kami berencana untuk menghapus perintah ini dan penyedia JavaScript warisan.
Ekstensibilitas UI melalui galeri ekstensi dan model data
Ekstensi debugger dengan manifes galeri ekstensi sekarang dapat menambahkan ikon ke tab Ekstensi baru pada pita WinDbg. Memilih ikon ini memicu visualisasi kueri model data tertentu. Ekstensibilitas dicapai dengan menambahkan tampilan ke manifes galeri ekstensi. Tampilan mengikat kopling nama dan ikon ke kueri model data dan jenis tampilan. Untuk dokumentasi, lihat Dokumentasi manifes untuk galeri ekstensi.
Menambahkan parameter pengecualian ke pemicu beban pengecualian galeri ekstensi
Ekstensi galeri sekarang dapat dimuat secara kondisional berdasarkan nilai parameter pengecualian tertentu. Untuk informasi selengkapnya, lihat Dokumentasi manifes galeri ekstensi.
Opsi konfigurasi untuk tidak pernah mengunduh simbol tertentu
Anda sekarang dapat melewati pengunduhan simbol untuk gambar tertentu.
Di bagian Symbols file konfigurasi DbgX.xml, Anda dapat menambahkan daftar simbol:
<Namespace Name="DisabledSymbolsDownload">
<Setting Name="MSEdge.dll" Type="VT_BSTR" Value=""></Setting>
</Namespace>
Di debugger, Anda dapat menjalankan dx Debugger.Settings.Symbols.DisabledSymbolsDownload untuk melihat daftar simbol yang saat ini tidak diunduh.
Anda juga dapat mengubah daftar langsung dari debugger:
dx @$curprocess.Modules[1].DisableSymbolDownload()
dx @$curprocess.Modules[1].EnableSymbolDownload()
Perintah baru untuk menampilkan informasi SourceLink
Untuk membantu menelusuri kesalahan terkait pengunduhan sumber dengan SourceLink yang disematkan, Anda sekarang dapat menggunakan perintah !lmsourcesinfo module untuk menampilkan isi dari SourceLink yang digunakan debugger.
Penyempurnaan antarmuka pengguna umum
Melakukan peningkatan kecil pada jendela seperti Modul dan jendela Tumpukan :
- Kolom header digunakan untuk mengurutkan tampilan grid.
- Tindakan klik kanan lainnya tersedia.
- Jendela Stack memperlihatkan frame sebagai in-line ketika diperlukan.
Perbaikan bug
- Memperbaiki masalah di mana PDB yang lebih besar dari 4 GB tidak akan diunduh melalui HTTP. Edge adalah contoh PDB seperti itu.
- Memperbaiki masalah caching di penyedia kredensial debugger. (Sekarang menyimpan kredensial per situs.)
- Memperbaiki bug selama evaluasi pemicu pemuatan galeri ekstensi.
- Memperbaiki bug pada
!addressyang dapat menyebabkan kerusakan sistem. - Diperbaiki
!heap -a -asehingga berfungsi sekarang.
Tempat Tanggal Lahir
Lihat catatan rilis TTD untuk versi 1.11.410.
1.2402.24001.0
Fitur baru
Debugging langsung Linux
Anda sekarang dapat men-debug proses Linux secara langsung. Untuk informasi selengkapnya, lihat artikel berikut ini:
Untuk masa depan yang dapat diperkirakan, klien WinDbg memerlukan Windows karena WinDbg tidak berjalan di Linux.
Merekam bagian dari pelaksanaan dengan Debugging Perjalanan Waktu
Anda sekarang dapat menentukan daftar modul yang akan direkam untuk memfokuskan TTD pada modul yang Anda pedulikan. Fungsionalitas ini dapat mengurangi overhead perekaman. Untuk menggunakannya, dalam dialog Konfigurasi dan Rekam , pilih Rekam subset eksekusi. Kemudian tentukan modul yang ingin Anda rekam. (Untuk informasi selengkapnya, lihat Masalah yang diketahui.)
Untuk kontrol yang lebih baik, Anda dapat merekam program dengan tepat menggunakan API perekaman dalam proses baru. Untuk mempelajari cara merekam program Anda, lihat kode sampel dan dokumentasi kami.
Jendela register ringkas
Jendela register baru terlihat seperti output dari perintah r. Pengeditan dari jendela register baru belum didukung.
Parameter baru untuk e (Masukkan Nilai) ke dalam perintah memori
Perintah e (Masukkan Nilai) ke dalam memori sekarang mendukung alamat fisik seperti perintah d (Tampilkan Memori). Opsi ini hanya didukung dalam mode kernel.
| Opsi | Deskripsi |
|---|---|
/p |
Menggunakan alamat memori fisik untuk tampilan. Rentang yang ditentukan oleh Rentang diambil dari memori fisik daripada memori virtual. |
/p[c] |
Sama seperti /p, kecuali memori yang di-cache dibaca. Tanda kurung di sekitar c harus disertakan. |
/p[uc] |
Sama seperti /p, kecuali bahwa memori yang tidak di-cache dibaca. Tanda kurung di sekitar uc harus disertakan. |
/p[wc] |
Sama seperti /p, kecuali memori gabungan tulis dibaca. Tanda kurung di sekitar wc harus disertakan. |
Untuk informasi selengkapnya, lihat e, ea, eb, ed, eD, ef, ep, eq, eu, ew, eza (Enter Values).
Perbaikan bug
- Dukungan untuk demangling nama Rust telah ditambahkan pada debugging Linux.
- Melakukan penyempurnaan pada penelusuran kesalahan CLR:
- Menambahkan kemampuan untuk memaksa tumpukan mode campuran berjalan bingkai CLR.
- Menambahkan
ForceMixedModeStackWalkerpengaturan keconfig.xmlatauDbgX.xml. - Menambahkan
!forceclrmixedmodeunwindperintah untuk penyelidikan satu kali atau jika Anda tidak dapat mengubah pengaturan konfigurasi.
- Menambahkan
- Menambahkan kemampuan untuk memaksa tumpukan mode campuran berjalan bingkai CLR.
- Melakukan peningkatan umum debugging CLR di Linux.
- Memperbaiki beberapa masalah sehubungan
LinuxKernel.jsdengan variabel per CPU:- Menambahkan perintah
!runqkeLinuxKernel.jsuntuk dapat membuang antrean eksekusi penjadwal kernel per-CPU (mirip dalam bentuk dengan perintahrunqutilitas crash Linux). - Memperbaiki berbagai perintah agar
LinuxKernel.jssesuai dengan perubahan kernel. Dalam kernel yang lebih baru, pohon timer menggunakan simpul RB yang di-cache alih-alih node RB mentah. Dalam kernel yang lebih baru,all_bdevsdaftar hilang, sehingga perangkat blok sekarang berjalan dari superblock sebagai gantinya (blockdev_superblock).
- Menambahkan perintah
- Melakukan berbagai
natvispemutakhiran agar lebih serupa dengan versi terbaru Visual Studio. -
sourcelinkPilihan versus warisansourceinfo.-
!lmsourcesinfo <module>Menambahkan perintah untuk menampilkansourcelinkaliran dari PDB (untuk membantu masalah penelusuran kesalahan dengansourcelink).
-
Masalah umum
Saat Anda menentukan daftar modul yang akan direkam dengan TTD, menentukan lebih dari satu modul tidak berfungsi dalam rilis ini.
1.2308.2002.0
Membuat banyak perbaikan bug dan peningkatan kecil.
1.2306.12001.0
Membuat banyak perbaikan bug dan peningkatan kecil.
1.2303.30001.0
Catatan
Debugger diganti namanya dari Pratinjau WinDbg menjadi WinDbg.
Debugger klasik yang dirilis dengan Alat Debugging untuk Windows sekarang dikenal sebagai WinDbg (Warisan).
Penelusuran Kesalahan Perjalanan Waktu di ARM64
WinDbg berjalan secara asli di ARM64, dan kami juga mengaktifkan TTD dari proses ARM64 asli. Anda sekarang dapat merekam proses ARM64 asli (dan proses x86 dan ARM32) dan men-debugnya dengan mudah, bahkan pada mesin x64 Anda. Dukungan untuk proses x64 atau yang berkemampuan x64 (ARM64EC) pada perangkat ARM64 belum tersedia.
Performa TTD secara keseluruhan juga ditingkatkan, dengan beban pencatatan berkurang secara substansial untuk proses-proses yang menggunakan instruksi SIMD umum. Secara total, 65 instruksi baru dioptimalkan, yang berkisar dari MMX hingga SSE 4.2, AVX, dan AVX2.
Resolusi titik henti ambigu
Titik henti ambigu memungkinkan debugger menetapkan titik henti dalam skenario tertentu di mana ekspresi titik henti dapat diselesaikan ke beberapa lokasi. Untuk informasi selengkapnya, lihat Resolusi titik henti ambigu.
1.2107.13001.0
Pencarian pola regex
Pencarian Pratinjau WinDbg sekarang menyertakan opsi untuk mencari dengan menggunakan ekspresi reguler, yang dikenal sebagai regex. Untuk mengaktifkan regex di jendela yang ingin Anda cari, pilih Ctrl+F. Kemudian alihkan tombol berlabel di .* samping kotak pencarian.
Mode terbatas
Mode terbatas adalah pengaturan opsional yang dapat membatasi jenis sesi penelusuran kesalahan yang dapat dimulai oleh Pratinjau WinDbg ke sesi penelusuran kesalahan jarak jauh dan file cadangan saja. Untuk informasi selengkapnya, lihat WinDbg: Mode terbatas.
Dukungan variabel tersembunyi
Dalam versi sebelumnya, WinDbg melempar kesalahan "Simbol Ambigu" saat mencoba mengevaluasi (??) atau menampilkan (dx) variabel yang berbagi namanya dengan variabel lain dalam cakupan. WinDbg sekarang membedakan variabel yang memiliki nama yang sama dengan menambahkan @n ke nama variabel. Contohnya termasuk foo@0 dan foo@1
Perubahan ini juga tercermin di jendela Lokal . Sebelumnya, hanya variabel terdekat dalam cakupan yang muncul.
1.2104.13002.0
Pilihan dan pencarian nomor pintar
Fitur produktivitas yang nyaman dari Pratinjau WinDbg adalah kemampuan untuk mendeteksi pola di jendela Perintah . Untuk mendeteksi pola, pilih teks apa pun, dan semua kemunculan teks tersebut disorot. Penyorotan ini berguna ketika Anda melihat pola memori. Sekarang, ini juga menyoroti angka yang setara dalam radiks lain, tidak peduli bagaimana angka diformat dalam heksimal, desimal, atau notasi ilmiah. Untuk informasi selengkapnya tentang skema penomoran, lihat n (Tetapkan Basis Angka).
Contoh:
Saat Anda memilih 0x000001e2fb3f6160, semua instance lainnya disorot, tidak peduli formatnya.
Fitur ini juga berfungsi dengan sorotan semi-sementara. Pilih Ctrl dan klik ganda pada angka untuk menyoroti semua kemunculannya. Anda dapat melacak beberapa angka penting di seluruh riwayat perintah Anda dengan cara ini. (Untuk menghapus sorotan, pilih Ctrl dan klik dua kali angka lagi.) Terakhir, fitur ini juga berfungsi saat Anda mencari nomor dengan memilih Ctrl+F.
Akses diperluas untuk kode sumber
Perintah jalur sumber .srcpath, .lsrcpath (Set Source Path) diperbarui untuk menyertakan tag DebugInfoDbaru . Untuk informasi selengkapnya, lihat Akses yang diperluas kode sumber.
Keadaan host dan tamu dari proses WOW dalam model data
Saat Anda men-debug proses WOW 32-bit dari konteks 64-bit, Anda sekarang dapat mengakses status host dan tamu dalam model data.
Contoh status tamu 32-bit:
dx @$curprocess.Environmentdx @$curthread.Environmentdx @$curthread.Stack
Contoh status host 64-bit:
dx @$curprocess.NativeEnvironmentdx @$curthread.NativeEnvironmentdx @$curthread.NativeStack
Peningkatan penelusuran kesalahan JavaScript
JavaScript yang dimuat pada antarmuka pengguna sekarang menggunakan perintah .scriptdebug untuk debug langsung dalam konsol. Untuk informasi selengkapnya, lihat Pembuatan skrip debugger JavaScript: Penelusuran kesalahan JavaScript.
Penyempurnaan aksesibilitas
Dengan Pratinjau WinDbg, kami berkomitmen untuk membangun debugger yang inklusif bagi insinyur penyandang disabilitas. Kami melakukan peningkatan aksesibilitas berikut:
- Membuat tautan jendela Perintah dapat diklik melalui keyboard (pilih Shift+Enter).
- Peningkatan navigasi keyboard pada menu utama.
- Penyempurnaan navigasi keyboard pada ribbon.
- Peningkatan kontras pada elemen UI.
Jenis akses data Overwrite baru untuk Debugging Time Travel
Time Travel Debugging sekarang menyediakan Overwrite jenis akses data. Kueri memori seperti dx @$cursession.TTD.Memory() sekarang memiliki kolom lain yang memperlihatkan nilai lama penulisan.
Perbaikan, peningkatan, dan pembaruan lainnya
- Menambahkan fitur untuk secara otomatis mendeteksi dan menerapkan solusi untuk masalah perangkat keras USB 3.1 saat host debugging kernel dan target adalah pengontrol USB 3.1.
- Menambahkan pintasan UI baru: Ctrl+Shift+pilih tautan DML menyalinnya ke clipboard.
1.0.2007.01003
Penanda garis waktu
Bookmark posisi perjalanan waktu penting di WinDbg alih-alih menyalin dan menempelkan posisi secara manual ke Notepad. Penanda buku memudahkan untuk mengamati dengan cepat berbagai posisi dalam rekaman relatif terhadap peristiwa lain dan untuk memberi anotasi.
Anda dapat memberikan nama deskriptif untuk penanda buku.
Akses marka buku melalui jendela Garis Waktu yang tersedia di Lihat>Garis Waktu. Saat Anda mengarahkan mouse ke atas bookmark, nama bookmark akan muncul.
Anda dapat memilih dan menahan (atau mengklik kanan) marka buku untuk melakukan perjalanan ke posisi tersebut, mengganti nama, atau menghapus marka buku.
Jendela modul
Jendela baru menunjukkan modul dan informasi terkait yang tersedia melalui menu Tampilan. Jendela Modul menunjukkan:
- Nama modul, termasuk lokasi jalur.
- Ukuran dalam byte modul yang dimuat.
- Alamat dasar tempat modul dimuat.
- Versi file.
Nama/deskripsi utas tersedia dalam debugging langsung
Nama thread yang diatur dari SetThreadDescription sekarang tersedia saat melakukan debugging mode pengguna secara langsung. Nama utas tersedia dengan menggunakan ~ perintah atau model data debugger.
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
Dukungan PDB portabel
Dukungan PDB portabel ditambahkan. Format PDB menjelaskan pengodean informasi debugging yang dihasilkan oleh pengkompilasi bahasa CLI dan digunakan oleh debugger serta alat pengembangan lainnya. Untuk informasi selengkapnya, lihat Simbol PDB Portabel.
Perubahan lain dan perbaikan bug
- Memberikan dukungan untuk debugging cadangan kernel AMD64 dan Linux untuk WinDbg.
- Melakukan peningkatan pada perekaman perjalanan waktu dan perbaikan-perbaikan lainnya.
1.0.1912.11001
- Garis waktu TTD: Jendela baru menampilkan representasi visual peristiwa penting dalam jejak Anda: pengecualian, titik henti, panggilan fungsi, dan akses memori. Garis waktu secara otomatis membuka dan menampilkan pengecualian (jika ada) dan titik henti. Untuk informasi selengkapnya, lihat Pratinjau WinDbg: Garis Waktu.
- Beralih ke chrome jendela default: Chrome jendela kustom yang kami gunakan menyebabkan beberapa masalah penskalaan dan pengubahan ukuran, jadi kami menghapusnya untuk saat ini.
- Menu file meningkatkan navigasi keyboard: Menu file lebih mudah dinavigasi hanya dengan keyboard.
Perubahan lain dan perbaikan bug
- Menonaktifkan jendela Tumpukan dan Lokal saat target Anda berjalan sehingga tidak menampilkan "Kesalahan yang tidak ditentukan" saat tidak ada target.
- Menambahkan kolom Layanan ke dialog Lampirkan untuk membantu Anda menemukan layanan mana yang berjalan dengan mudah.
- Memperbaiki bug yang menyebabkan deteksi arsitektur tidak berfungsi saat aplikasi dibuka dengan argumen.
- Peningkatan proses pembongkaran untuk jendela Pembongkaran saat simbol privat dimuat.
- Menghapus tombol Muat JSProvider dari pita skrip karena jsprovider.dll sekarang dimuat secara otomatis.
1.0.1908.30002
- Penyempurnaan objek panggilan TTD: Kueri panggilan sekarang menyertakan nama parameter, jenis, dan nilai. Saat Anda mengkueri seluruh jejak untuk panggilan fungsi, Anda bisa mendapatkan parameter yang sepenuhnya ditik dan nilainya. Kemampuan ini memudahkan untuk memfilter hasil berdasarkan parameter.
- Dukungan untuk Open Enclave: Pratinjau WinDbg sekarang dapat men-debug aplikasi Open Enclave. Untuk informasi selengkapnya, lihat debugging Enklave Terbuka).
- Cadangan inti ELF: Sebagai bagian dari mendukung Open Enclave, WinDbg dapat membuka cadangan inti elf dan biner dan juga simbol DWARF (DWARF 5 saat ini tidak didukung) dari aplikasi enklave dan Linux. Saat Anda membuka cadangan inti dari aplikasi non-Windows, semua jendela dan perintah dasar harus berfungsi dengan baik, tetapi sebagian besar ekstensi dan perintah khusus Windows tidak berfungsi. File ELF dan DWARF diunduh dari server simbol mengikuti konvensi kunci yang didefinisikan dalam konvensi kunci SSQP. Enklave adalah satu-satunya skenario yang didukung, tetapi kami menyambut umpan balik tentang membuka cadangan inti Linux lainnya.
- Perubahan format file TTD: Pembaruan besar pada format file traces TTD merusak kompatibilitas ke depan. Versi Pratinjau WinDbg sebelumnya tidak dapat membuka jejak yang direkam dengan versi ini dan versi Pratinjau WinDbg di masa mendatang. Versi ini dan versi mendatang akan dapat membuka jejak baru dan lama.
Perubahan lainnya
- TTD sekarang menggunakan mesin 64-bit untuk pengindeksan dan bitness mesin debugger yang sesuai untuk pemutaran ulang. Potensi masalah memori saat pengindeksan dan masalah SOS saat pemutaran ulang diminimalkan.
- Menjalankan
dxtanpa parameter apa pun sekarang menampilkan namespace root untuk kemudahan penelusuran. - Menu Pengaturan sekarang memiliki opsi untuk mengubah simbol default dan lokasi cache sumber.
- Dukungan untuk merekam AVX-512 (perekaman AVX-512 menyebabkan perlambatan yang lebih besar dari normal) ditingkatkan.
- Lisensi offline diaktifkan.
1.0.1905.12001
Peningkatan mitigasi kesalahan SymSetDiaSession: Perbaikan untuk mengurangi kesalahan yang disebabkan oleh aplikasi yang menyuntikkan DbgHelp ke dalam proses kami tidak berfungsi dalam beberapa skenario. Kami melakukan perbaikan untuk itu dan terus memantau umpan balik tentang kesalahan ini.
Penyesuaian warna aksen: Umumnya, skenario memerlukan beberapa jendela WinDbg dibuka. Berpindah-pindah di antara pilihan tersebut bisa membingungkan dan memerlukan waktu untuk memahami mana yang tepat. Kami menambahkan kemampuan untuk mengubah warna aksen biru untuk membantu membedakan sesi secara visual dan membuatnya lebih mudah untuk bertukar di antara mereka.
Pilih pita Tampilan dan pilih opsi warna aksen di bagian terakhir. Ketika sesi mendatang dibuka dari target terbaru, warna aksen tetap ada sebagai bagian dari ruang kerja target.
Peningkatan tokenisasi sumber: Jendela sumber sekarang memiliki dukungan dasar untuk tokenisasi file sumber Rust dan C++ SEH __try/__except/__finally/__leave.
Peningkatan coroutine: Kami meningkatkan dukungan untuk variabel lokal coroutine dan variabel tertentu yang dioptimalkan.
Setelan simbol default dan lokasi cache sumber: Kami menambahkan opsi ke menu Setelan di bawah Setelan penelusuran kesalahan untuk mengubah lokasi cache simbol. Ada masalah umum yang membuat pengaturan ini kosong menyebabkan pemuatan sumber gagal. Kami berencana untuk menambahkan validasi untuk mencegah masalah ini terjadi dalam rilis mendatang.
Perbaikan -pv: Kami memperbaiki bug yang mungkin telah mencegah
-pv(lampiran noninvasif) bekerja dalam beberapa keadaan.
1.0.1904.18001
- Perbaikan untuk kesalahan SymSetDiaSession: Kami memiliki laporan kesalahan yang mencegah Pratinjau WinDbg dibuka dalam beberapa situasi. Beberapa aplikasi eksternal mencoba menyuntikkan versi DbgHelp ke dalam proses kami sebelum kami memuatnya. Beberapa di antaranya menggunakan versi DbgHelp dengan fungsionalitas yang hilang, yang menyebabkan kesalahan ini ketika kami mencoba menggunakan fitur-fitur tersebut. Kami menambahkan perbaikan untuk masalah ini dan berencana melacaknya untuk menentukan apakah ada skenario di mana masalah tersebut masih terjadi.
- Kontrol font: Kami menambahkan pengaturan untuk mengontrol font dan ukuran font. Ada dua pengaturan yang berbeda: satu untuk jendela teks (jendela berspasi mono seperti Disassembly, Source, dan Command), dan satu untuk jendela alat (seperti Lokal dan Tumpukan). Opsi ini tidak memengaruhi beberapa area. Kami berencana untuk memperbaruinya di masa mendatang.
- Menyoroti penyempurnaan: Penyorotan teks persisten di jendela Perintah sekarang juga menyoroti teks di jendela Sumber dan Catatan .
- Peningkatan pemuatan sumber: Kami mengubah cara kerja memuat file sumber. Sebelumnya, ketika Anda membuka file sumber, operasi mesin seperti menjalankan lebih banyak perintah tidak dimungkinkan atau tidak dapat diprediksi. Kami mengubah lokasi terjadinya pemuatan untuk memungkinkan paralelisme yang lebih baik dan pembatalan operasi pembukaan sumber daya yang lebih andal.
Perubahan lain dan perbaikan bug
- Menambahkan Buka Pembongkaran ke menu konteks jendela Sumber .
- Menambahkan kotak centang Ikuti instruksi saat ini di jendela Pembongkaran .
- Memperbaiki bug yang menyebabkan jendela Perintah berkinerja lambat ketika menghasilkan teks dalam jumlah besar.
- Tombol Page Up dan Page Down diubah agar berkinerja seperti di Visual Studio.
- Membuat perubahan sehingga ketika file ASM dibuka di jendela Sumber , sekarang memiliki komentar dasar, string, dan penyorotan direktif.
1.0.1812.12001
Versi ini mencakup pembaruan berikut:
-
Header C++ model data debugger: Ada header C++ baru,
DbgModel.h, disertakan sebagai bagian dari Windows SDK untuk memperluas model data debugger melalui C++. Untuk informasi selengkapnya, lihat Gambaran umum C++ model data Debugger. Rilis ini mencakup ekstensi baru yang menambahkan lebih banyak fitur gaya API ke model data debugger yang dapat diakses melaluidxperintah, JavaScript, dan header baruDbgModel.h. Ekstensi ini memperluas model data untuk menyertakan pengetahuan tentang perakitan dan eksekusi kode melalui namespace Debugger.Utility.Code dan sistem file lokal melalui namespace Debugger.Utility.FileSystem. -
Ekstensi jenis sintetis: Dengan ekstensi API baru ini, kami memiliki sampel baru di repositori GitHub kami. Ekstensi JavaScript ini membaca file header C dasar dan mendefinisikan informasi tipe sintetis untuk struktur dan union yang ditentukan di header. Dengan perintah
dx, memori kemudian dapat dilihat dalam bentuk terstruktur seakan Anda memiliki PDB dengan informasi tipe untuk tipe tersebut.
Perubahan lain dan perbaikan bug
- Pratinjau WinDbg sekarang lebih cerdas menangani membawa jendela Sumber atau jendela Pembongkaran ke latar depan saat melangkah.
- Judul jendela Pratinjau WinDbg disusun ulang untuk memuat informasi yang lebih penting di awal ketika debug kernel.
- Kontras latar belakang alternatif di jendela Perintah harus sedikit lebih terlihat.
1.0.1810.2001
Versi ini mencakup pembaruan ini:
- Menambahkan dialog Pengaturan baru yang bisa Anda akses dari menu File atau pita Beranda .
- Menambahkan dialog pengaturan peristiwa dan pengecualian. Menu ini mengubah cara debugger menangani peristiwa dan pengecualian, setara dengan perintah
sxatau dialog filter kejadian milik WinDbg. Pada pita Beranda , pilih Pengaturan. Lalu di menu sebelah kiri, pilih Peristiwa dan Pengecualian untuk mengelola peristiwa dan pengecualian. - Pengindeks TTD telah ditingkatkan dengan performa yang lebih baik. Peningkatan ini meningkatkan performa pengindeksan file jejak TTD, yang membuat proses pengindeksan lebih cepat (antara 2 kali dan 10 kali) sambil membuat file indeks lebih kecil (~ 50% lebih kecil). Peningkatan performa paling terlihat untuk jejak data berukuran lebih dari 4 GB, atau ketika Anda menggunakan komputer dengan banyak inti CPU (8+). Pengindeks baru membuatnya lebih mudah untuk men-debug jejak berukuran besar (50 GB+).
- Menambahkan bendera peluncuran baru
debugArchuntuk menentukan arsitektur. Pratinjau WinDbg mencoba meluncurkan mesin debugger dengan ukuran bit yang benar untuk target guna mendukung debugging kode terkelola dengan lebih baik. Ada keadaan di mana ia tidak dapat menentukan bitness yang tepat, atau Anda mungkin ingin mengambil alih apa yang diputuskannya. Gunakan-debugArchx86|amd64 untuk mengontrol arsitektur mesin debugger.
Perubahan lain dan perbaikan bug
- Memperbaiki bug yang menyebabkan bilah hitam muncul pada debugger layar penuh saat jendela mengambang terbuka.
- Memperbaiki bug yang menyebabkan opsi simbol dihapus secara tidak sengaja.
- Riwayat perintah kini dipertahankan ketika membuka dari target terbaru.
- Pengeditan yang didukung di jendela model data tempat Anda sekarang dapat mengedit nilai.
- Membuat jejak TTD lebih jelas karena tidak diindeks.
- Meningkatkan performa jendela Lokal .
- Menambahkan tombol pita untuk menyimpan log jendela Perintah ke file.
- Ditambahkan
. SelectMany(\<projection\>)ke set default metode LINQ.
1.0.1807.11002
Versi ini mencakup pembaruan berikut:
-
Penyimpanan otomatis dan pemuatan titik henti: Langkah ini adalah langkah pertama untuk menggantikan ruang kerja. Anda sekarang dapat menyimpan dan memuat titik henti. Mengaktifkan sesuatu yang Anda debug sebelumnya dari tab Terbaru pada menu File sekarang memuat titik henti dari sesi tersebut. Rencananya adalah memperluas fungsionalitas ini untuk mempertahankan lebih banyak informasi di seluruh sesi. Titik henti perangkat keras (
ba) dan berbagai properti lainnya pada titik henti seperti alur dan konteks dan kondisi khusus proses saat ini tidak disimpan.
Perubahan kecil dan perbaikan bug
- Menambahkan opsi
-xbaris perintah , ,-xe-xd,-xn, dan-xiuntuk mengontrol penanganan pengecualian dan peristiwa. Opsi baris perintah ini berperilaku seperti rekan perintahnya. - Ditambahkan dukungan dalam jendela Catatan untuk pemformatan teks tebal, garis bawah, dan miring.
- Memperbaiki beberapa masalah zoom dan pengguliran.
- Menambahkan dukungan sehingga memilih teks di jendela Perintah, Memori, Sumber, atau Pembongkaran sekarang menyoroti instans lain dari teks yang dipilih.
- Memperbaiki bug di mana menginterupsi pemuatan simbol menyebabkan pemuatan simbol gagal selama sisa sesi.
- Memperbaiki bug sehingga NatVis sekarang memuat ulang dengan benar saat sesi dimulai ulang.
1.0.1805.17002
Versi ini mencakup pembaruan berikut:
Jendela Pembongkaran Baru: Jendela sekarang mencakup:
- Menggulir ke atas atau ke bawah saat ini terus memuat lebih banyak pembongkaran sejauh memungkinkan.
- Penyorotan digunakan untuk mengidentifikasi sintaks untuk angka, alamat kode, dan kode operasi.
- Memilih simbol kode menyebabkan jendela Disassembly melompat ke lokasi tersebut.
- Mengarahkan mouse ke angka menunjukkan tooltip yang mengonversi angka tersebut ke basis lain.
- Menggunakan header menandakan dimulainya fungsi.
Jendela Sumber yang lebih cepat: Jendela sumber diperbarui agar lebih cepat dan lebih efisien sumber daya.
Perubahan kecil dan perbaikan bug
- Memperbaiki masalah terkait cache simbol.
- Memperbaiki beberapa kasus di mana opsi pengaturan jeda awal tidak dapat digunakan ketika target belum diaktifkan.
- Menambahkan fitur agar jika Anda memilih tab di jendela Perintah tanpa konten tersedia, kursor tetap berada di bidang input.
- Menambahkan dukungan sehingga Pratinjau WinDbg sekarang mendeteksi bitness secara otomatis saat membuka file CAB.
1.0.1804.18003
Versi ini mencakup pembaruan berikut:
Status simbol dan peningkatan pembatalan: Ada kalanya debugger menampilkan BUSY memuat simbol, dan sulit untuk menentukan apa yang dilakukannya dan mengapa tanpa mengaktifkan fitur kebisingan. Kami memperbarui Pratinjau WinDbg untuk memiliki komunikasi yang lebih baik mengenai apa yang dilakukannya saat memuat simbol, untuk membantu memecahkan masalah apa pun.
Selain perubahan yang memungkinkan Anda melihat apa yang terjadi, kami juga membuat beberapa perubahan yang membuat simbol pembatalan lebih dapat diandalkan. Jendela Log berisi beberapa detail yang biasanya dihasilkan ketika
!symdiaktifkan. Jika Anda memilih Lihat>Log, Anda mendapatkan output pemuatan simbol berisik penuh tanpa harus menyalakannya dan mencoba memuat ulang simbol.Jendela Catatan Eksperimental: Pratinjau WinDbg sekarang memiliki jendela untuk membuat catatan. Pilih Tampilkan>Catatan untuk membukanya. Jika Anda menyalin/menempelkannya, tautan DML dipertahankan dan masih berfungsi seolah-olah itu adalah jendela Perintah . Anda juga dapat menyimpan dan memuat file catatan dari pita Catatan saat jendela terbuka.
Jendela Sumber yang lebih cepat eksperimental: Untuk membantu meningkatkan performa Pratinjau WinDbg, jendela Sumber baru eksperimental lebih efisien. Beberapa celah ada di sekitar menu konteks dan penyorotan sintaks, tetapi kami ingin memberi semua orang opsi untuk mencobanya sebelum kami menyelesaikannya untuk memberi kami umpan balik awal. Jalankan
$UseFastSourceWindowuntuk menggunakannya. Jika Anda ingin kembali ke versi lama, jalankan$UseMonacoSourceWindow. Pengaturan dipertahankan di seluruh sesi. Anda perlu menutup dan membuka kembali jendela Sumber untuk mendapatkan versi baru.JSProvider API versi 1.2: Untuk ekstensi JavaScript yang mendeklarasikan dukungan untuk API versi 1.2:
- Objek apa pun dengan
.compareTometode yang keluar dari skrip memiliki komparator kustom di atasnya. (Operator perbandingan berfungsi di evaluator DX dan di tempat lain. Contohnya adalahIModelObject::Compare.) - Objek apa pun dengan
.equalsmetode yang keluar dari skrip memiliki operator kesetaraan kustom di atasnya. (Operator==dan!=bekerja di evaluator DX dan di tempat lain. Contohnya adalahIModelObject::IsEqualTo.) - Objek model asli atau data yang memasukkan skrip memiliki
.compareTodan.equalsdi atasnya, yang memungkinkan akses ke komparator kustom atau implementasi kesetaraan kustom.
- Objek apa pun dengan
Perubahan kecil dan perbaikan bug
- Menambahkan dukungan sehingga
.serversekarang mencantumkan nama domain lengkap untuk lebih mudah digunakan saat ada masalah domain terkait nama pendek. - Menambahkan dukungan sehingga Ctrl+G sekarang berfungsi di jendela Sumber .
- Menambahkan bilah alamat ke jendela Disassembly.
- Dukungan ditambahkan sehingga Pratinjau WinDbg sekarang menangani
_NT_SYMBOL_PATHdengan cara yang lebih sesuai harapan. -
-serverMenambahkan opsi baris perintah. - Menambahkan dukungan sehingga kueri model data TTD sekarang ditampilkan secara progresif. Jika Anda menghentikannya sementara, Anda tetap akan melihat hasilnya. Fitur ini bersifat eksperimental dan opsional. Jalankan
dx @$cursession.TTD.AsyncQueryEnabled = 1untuk mengaktifkan fitur ini. - Menambahkan dukungan sehingga
dpsperintah sekarang memiliki tautan ke file sumber yang dirujuknya.
1.1801.19001.0
Versi ini mencakup pembaruan berikut:
- Penyorotan teks: Anda sekarang dapat menyoroti semua instans teks yang dipilih langsung di debugger. Untuk menggunakan fitur ini, pilih beberapa teks di jendela Perintah lalu pilih Sorot pada pita Perintah . Anda juga dapat memilih Ctrl+Alt+H. Jika Anda menggunakan salah satu opsi tersebut pada teks yang sudah disorot, penyorotan akan dihapus.
Jika Anda lebih suka menggunakan perintah, Anda dapat menggunakan $hl perintah :
$hl ["someValueHere"]: Sorotan memberikan teks (atau penyorotan yang jelas jika sudah disorot).
$hl clearAll: Hapus semua entri yang disorot.
$hl caseSensitive [1|0]: Atur pencocokan sorotan ke sensitif atau tidak sensitif huruf besar/kecil. (Defaultnya adalah tidak peka huruf besar/kecil.)
Rilis ini juga mencakup beberapa perbaikan bug kecil.
1.1712.15003.0
Versi ini mencakup pembaruan berikut:
Kueri memori TTD: Anda sekarang dapat mengkueri TTD untuk akses memori dengan cara yang sama dengan cara yang Anda kueri untuk panggilan hari ini. Anda sekarang dapat menemukan semua bacaan, tulis, dan eksekusi yang mengakses rentang memori tertentu.
-
Contoh baca dan tulis:
dx @$cursession.TTD.Memory(startAddress, endAddress, "rw") -
Contoh eksekusi unik:
dx @$cursession.TTD.Memory(startAddress, endAddress, "ec")
-
Contoh baca dan tulis:
Perubahan pengaturan: Pratinjau WinDbg sekarang secara otomatis menyimpan pengaturan antar sesi, termasuk jalur simbol dan jalur sumber Anda.
Penyempurnaan JavaScript
- Angka dan numerik 64-bit di JavaScript sekarang berisi metode modulo, yang memungkinkan operasi modulo 64-bit yang sebenarnya.
- Objek yang ditentukan dalam JavaScript sekarang dapat mengimplementasikan konsep perbandingan atau kesetaraan yang kustom. Ini bekerja
dxdengan menggunakan operator C++ standar atau dalam operasi LINQ. Untuk menggunakan fungsionalitas ini, skrip harus mendeklarasikan dalaminitializeScriptarray bahwa skrip mendukung versi baru API host dengan menyisipkan rekamannew host.apiVersionSupport(1, 2). Setelah itu, Anda dapat menggunakan fungsi-fungsi ini dalam kueri LINQdxatau Jendela Model Data. Jika metode mengimplementasikan.compareTo(other), itu sebanding (operator perbandingan bekerja didxdan LINQ). Jika metode mengembalikan nilai negatif, makathis < other. Jika metode mengembalikan nol, makathis == other. Jika metode mengembalikan nilai positif, makathis > other. Jika metode mengimplementasikan.equals(other), itu setara (==berfungsi didxdan LINQ). Metode harus mengembalikan benar atau salah.
Perubahan kecil dan perbaikan bug
- Memperbaiki bug di mana jendela Stack dan Locals tidak berfungsi selama debugging boot.
- Memperbarui output LM untuk melaporkan
ProductVersiondan bidang serupa dengan lebih akurat. - Mengaktifkan tombol Keluar Kembali selama sesi TTD.
- Menambahkan dukungan untuk
-lsrcpath. - Memperbaiki header di jendela Lokal, Tonton, dan Model agar tidak hilang saat Anda menggulir ke bawah.
- Telah menambahkan dukungan yang memungkinkan Anda menggunakan Alt+Tab untuk kembali ke Pratinjau WinDbg, sehingga jendela Perintah dapat mempertahankan lokasi kursor dengan benar.
- Menambahkan pintasan Ctrl+Alt+V untuk mengubah mode verbose.
- Menambahkan dukungan sehingga sekarang Anda dapat menonaktifkan gulir otomatis jendela Perintah dengan menahan atau mengklik kanan tab Perintah kemudian memilih Nonaktifkan gulir otomatis.
- Menambahkan dukungan sehingga Anda sekarang dapat men-debug proses anak melalui halaman tingkat lanjut yang dapat dieksekusi peluncuran.
1.0.14.0
Versi ini mencakup pembaruan berikut:
- Pengalaman server proses yang ditingkatkan: Pemberitahuan baru pada menu File menunjukkan server proses mana yang Anda sambungkan dan sedang berinteraksi. Sebagai bagian dari perubahan ini, ketika sesi debugging berakhir, koneksi server proses tetap aktif dan Anda dapat memutuskannya pada menu File.
- Opsi tata letak prasetel baru pada pita Tampilan: Opsi Tata Letak baru tersedia di pita Lihat. Saat ini ada tiga tata letak: default, satu berfokus pada pembongkaran, dan satu minimal.
- Pita Debugging Perjalanan Waktu: Pita Perjalanan Waktu yang disempurnakan muncul saat Anda men-debug pelacakan TTD.
-
Metadata dari skrip JavaScript: Ekstensi JavaScript sekarang dapat mengembalikan metadata untuk properti dan konstruksi lainnya. Ekstensi sekarang dapat memberikan teks bantuan, menunjukkan basis tampilan untuk nilai, dan banyak lagi. Metadata disediakan dengan menempatkan deskriptor metadata pada objek melalui kehadiran
Symbol.metadataDescriptoratau panggilan eksplisit kehost.metadata.defineMetadata. Pengembalian fungsi, nilai hasil iterasi, dan konteks nilai lainnya dapat mengembalikan metadata untuk nilai-nilainya melaluihost.metadata.valueWithMetadata. -
Pembaruan JavaScript API: Beberapa perubahan signifikan pada tingkat sumber dilakukan pada API dari penyedia JavaScript (termasuk metode dan properti baru yang diperkenalkan pada objek bawaan). Ekstensi yang ada tidak akan melihat perubahan yang berpotensi melanggar tanpa menunjukkan bahwa ekstensi tersebut mendukung versi baru JsProvider API. Dukungan untuk versi API baru ditunjukkan dengan menempatkan rekaman
host.apiVersionSupportdalam array yang dikembalikan olehinitializeScriptyang menyatakan dukungan untuk versi 1.1.
Perubahan api versi 1.1
- Fungsi
host.getModuleSymboldanhost.getModuleTypemengembalikan null jika tidak dapat menemukan simbol alih-alih melempar pengecualian. - Semua objek asli memiliki properti alamat di atasnya selain
.targetLocation. Jika objek tidak memiliki alamat, pengecualian akan dilemparkan saat mengakses properti. - Semua objek bawaan memiliki metode
.getObjectValuedan.setObjectValueyang baru untuk mengakses properti pada objek, yang mungkin berkonflik dengan nama yang ditempatkan JavaScript pada objek, misalnyaaddress.
Perubahan JavaScript lainnya
- Ekstensi JavaScript sekarang dapat menambahkan dan menghapus properti pada objek model data melalui
Object.definePropertydan operator penghapusan. Menambahkan atau mendaftarkan kelas JavaScript sebagai model induk atau tanda tangan jenis masih merupakan cara yang disukai untuk memanipulasi model objek. - Ekstensi JavaScript sekarang dapat memodifikasi variabel global dalam modul di target debug melalui API baru
host.setModuleSymbol. - Semua fungsi matematika yang ada pada jenis pustaka 64-bit (misalnya, ,
.add,.subtract.multiply, dan.divide) juga ada di nomor JavaScript. - Fungsi dan properti JavaScript sekarang dapat mengembalikan nilai, yang merupakan enum melalui marshaling kustom. Fungsi atau aksesor properti dapat mengembalikan
host.typeSystem.marshalAs(value, type…)untuk memunculkan marshaling kustom tersebut. - Perintah breakpoint dalam debugger skrip sekarang bisa menghentikan eksekusi pada nama fungsi selain posisi baris/kolom.
- Jenis objek di ekstensi JavaScript memiliki akses ke modul yang berisinya melalui
.containingModuleproperti .
Perubahan kecil dan perbaikan bug
- Memperbaiki pemformatan tab pita yang bersifat kondisional agar lebih mudah dipahami.
- DML yang dikerjakan ulang agar lebih ketat dalam penguraian untuk meningkatkan performa.
- Membuat berbagai perbaikan dengan performa dan perilaku Ctrl+F.
- Menambahkan peringatan saat berjalan tanpa dikurangi sebelum mencoba menggunakan TTD.
- Menambahkan opsi untuk mengambil alih deteksi bitness target otomatis.
- Menonaktifkan berbagai menu File dan opsi pita saat tidak dapat digunakan (seperti Buka saat berada dalam file cadangan).
Masalah umum
SOS tidak berfungsi pada pelacakan x86.
1.0.13.0
Versi ini menambahkan pelacakan perjalanan waktu. Dengan Debugging Perjalanan Waktu, Anda dapat merekam proses dan kemudian memutarnya kembali nanti menuju ke depan dan ke belakang. TTD dapat membantu Anda men-debug masalah dengan lebih mudah dengan memungkinkan Anda "memutar balik" sesi debugger Anda alih-alih harus mereproduksi masalah sampai Anda menemukan bug. Untuk informasi selengkapnya, lihat Time Travel Debugging: Ikhtisar.
1.0.12.0
Versi ini adalah rilis pertama dari WinDbg Preview. Untuk informasi umum tentang fitur yang tersedia di Pratinjau WinDbg, lihat Fitur utama WinDbg.