Bagikan melalui


Catatan rilis

Logo WinDbg dengan kaca pembesar memeriksa bit.

Topik ini menyediakan informasi tentang apa yang baru di WinDbg. Versi sebelumnya dirilis sebagai Pratinjau WinDbg.

1.2402.24001.0

Fitur baru

Penelusuran kesalahan Linux langsung

Anda sekarang dapat melakukan debug langsung proses Linux. Untuk mengetahui informasi selengkapnya, lihat topik berikut:

Penelusuran kesalahan proses jarak jauh langsung Linux

Simbol dan sumber Linux

Klien WinDbg untuk masa depan yang dapat diperkirakan masih memerlukan Windows, karena WinDbg tidak berjalan di Linux.

Merekam subset eksekusi dengan Penelusuran Kesalahan Perjalanan Waktu

Anda sekarang dapat menentukan daftar modul yang akan direkam untuk memfokuskan TTD pada modul yang Anda pedulikan. Ini dapat secara substansial mengurangi overhead perekaman. Untuk menggunakan ini, cukup centang "Rekam subset eksekusi" dalam kotak dialog "Konfigurasikan dan Rekam", lalu tentukan modul yang ingin Anda rekam. (lihat masalah yang diketahui di bawah).

Untuk kontrol yang lebih baik, Anda dapat merekam program dengan tepat menggunakan API perekaman dalam proses baru. Lihat bagaimana dengan kode sampel dan dokumentasi kami.

Jendela register ringkas

Jendela register baru terlihat seperti output dari r perintah. Perhatikan bahwa pengeditan dari jendela register baru belum didukung.

Parameter baru untuk e (Masukkan Nilai) ke dalam perintah memori

e Perintah (Masukkan Nilai) ke dalam memori sekarang mendukung alamat fisik seperti d perintah (Memori Tampilan). Perhatikan opsi ini hanya didukung dalam mode kernel:

Opsi Deskripsi
/p Menggunakan alamat memori fisik untuk tampilan. Rentang yang ditentukan oleh Rentang akan diambil dari memori fisik daripada memori virtual.
/p[c] Sama seperti /p, kecuali memori yang di-cache akan dibaca. Tanda kurung di sekitar c harus disertakan.
/p[uc] Sama seperti /p, kecuali memori yang tidak di-cache akan dibaca. Tanda kurung di sekitar uc harus disertakan.
/p[wc] Sama seperti /p, kecuali memori gabungan tulis akan 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 di debugging Linux
  • Penyempurnaan penelusuran kesalahan CLR
    • Tambahkan kemampuan untuk memaksa tumpukan mode campuran berjalan bingkai CLR
      • Menambahkan ForceMixedModeStackWalker pengaturan ditambahkan ke config.xml atau DbgX.xml.
      • Menambahkan !forceclrmixedmodeunwind perintah untuk investigasi satu kali atau jika Anda tidak dapat mengubah pengaturan konfigurasi.
  • Peningkatan umum penelusuran kesalahan CLR di Linux
  • Memperbaiki sejumlah masalah sehubungan dengan variabel LinuxKernel.js dan per cpu
    • Menambahkan !runq perintah ke LinuxKernel.js untuk dapat mencadangkan antrean eksekusi penjadwal kernel per cpu (mirip dalam bentuk dengan perintah utilitas runq crash Linux)
    • Memperbaiki berbagai perintah dalam LinuxKernel.js agar sesuai 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, daftar all_bdevs hilang, jadi perangkat blok sekarang berjalan dari superblock sebagai gantinya (blockdev_superblock)
  • Berbagai perbaikan natvis untuk bekerja lebih seperti versi terbaru Visual Studio
  • Lebih suka sourcelink vs sourceinfo warisan
    • Menambahkan !lmsourcesinfo <module> perintah untuk menampilkan aliran sourcelink dari pdb (untuk membantu masalah penelusuran kesalahan dengan sourcelink).

Masalah umum

Saat menentukan daftar modul yang akan direkam dengan TTD, menentukan lebih dari satu modul tidak berfungsi dalam rilis ini.

1.2308.2002.0

Banyak perbaikan bug dan peningkatan kecil.

1.2306.12001.0

Banyak perbaikan bug dan peningkatan kecil.

1.2303.30001.0

Catatan

Debugger telah diganti namanya dari Pratinjau WinDbg menjadi WinDbg.

Debugger warisan yang dirilis dengan Alat Penelusuran Kesalahan untuk Windows akan direferensikan sebagai WinDbg (klasik).

Penelusuran Kesalahan Perjalanan Waktu di ARM64

WinDbg tidak hanya berjalan secara asli di ARM64, kami juga mengaktifkan Time Travel Debugging (TTD) dari proses ARM64 asli juga. 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 dengan dukungan x64 atau x64 (ARM64EC) pada perangkat ARM64 belum tersedia.

Performa TTD secara keseluruhan juga telah ditingkatkan, dengan perekaman overhead berkurang secara substansial untuk proses yang menggunakan instruksi SIMD umum. Total 65 instruksi baru dioptimalkan, mulai dari MMX hingga SSE 4.2, AVX dan AVX2.

Resolusi Titik Henti Ambigu

Titik henti ambigu memungkinkan debugger mengatur titik henti dalam skenario tertentu di mana ekspresi titik henti diselesaikan ke beberapa lokasi. Untuk informasi selengkapnya, lihat Resolusi titik henti ambigu.

1.2107.13001.0

Pencarian Pratinjau WinDbg sekarang menyertakan opsi untuk mencari menggunakan ekspresi reguler - Regex. Aktifkan Regex di jendela yang ingin Anda cari dengan melakukan Ctrl+F, lalu alihkan tombol berlabel di .* samping kotak pencarian.

Mode Terbatas

Mode Terbatas adalah pengaturan opsional yang dapat membatasi jenis sesi penelusuran kesalahan Pratinjau WinDbg dapat mulai ke sesi penelusuran kesalahan jarak jauh dan file cadangan saja. Untuk informasi selengkapnya, lihat WinDbg - Mode Terbatas.

Dukungan variabel ber bayangan

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 akan membedakan variabel yang memiliki nama yang sama dengan menambahkan @n ke nama variabel. Misalnya: foo@0, foo@1

Perubahan ini juga akan tercermin di jendela Lokal. Sebelumnya, hanya variabel terdekat dalam cakupan yang akan ditampilkan.

1.2104.13002.0

Fitur produktivitas yang nyaman dari Pratinjau WinDbg adalah kemampuan untuk mendeteksi pola di jendela perintah. Untuk melakukan ini, pilih teks apa pun, dan semua instans lain dari teks tersebut yang disorot. Karena penyorotan ini berguna ketika melihat pola memori, sekarang juga akan menyoroti angka yang setara dalam radiks lain, tidak peduli bagaimana angka diformat dalam notasi heksimal, desimal, atau ilmiah. Untuk informasi selengkapnya tentang skema penomoran, lihat n (Atur Basis Angka).

Contoh:

Saat memilih 0x000001e2fb3f6160, semua instans lain disorot apa pun formatnya.

Cuplikan layar jendela perintah WinDbg dengan beberapa format angka disorot.

Fitur ini juga berfungsi dengan sorotan semi-sementara. Ctrl + Klik Ganda pada angka untuk menyoroti semua instansnya. Anda dapat melacak beberapa angka penting di seluruh riwayat perintah Anda dengan cara ini (untuk menghapus sorotan, Ctrl + Klik Ganda pada angka lagi). Terakhir, fitur ini juga berfungsi saat mencari angka dengan Ctrl + F.

Akses Yang Diperluas Kode Sumber

Perintah jalur sumber .srcpath, .lsrcpath (Set Source Path) telah diperbarui untuk menyertakan tag baru – DebugInfoD. Untuk informasi selengkapnya, lihat Kode Sumber Akses yang Diperluas.

Status host dan tamu proses WOW dalam model data

Saat men-debug proses WOW 32-bit dari konteks 64-bit, pengguna sekarang dapat mengakses status host dan tamu dalam model data.

Contoh status tamu 32 bit:

dx @$curprocess.Environment

dx @$curthread.Environment

dx @$curthread.Stack

Contoh status host 64 bit:

dx @$curprocess.NativeEnvironment

dx @$curthread.NativeEnvironment

dx @$curthread.NativeStack

Penyempurnaan Penelusuran Kesalahan Javascript

Javascript yang dimuat di UI sekarang dapat langsung di-debug dalam konsol menggunakan perintah .scriptdebug. Untuk informasi selengkapnya, lihat Pembuatan Skrip JavaScript Debugger - Penelusuran Kesalahan JavaScript.

Penyempurnaan aksesibilitas

Dengan Pratinjau WinDbg, kami berkomitmen untuk membangun debugger yang inklusif bagi para teknisi penyandang disabilitas, kami terus meningkatkan aksesibilitas. Penyempurnaan berikut telah dilakukan.

  • Tautan jendela perintah sekarang dapat diklik melalui keyboard (Shift+Enter)
  • Navigasi keyboard yang disempurnakan dari menu utama
  • Navigasi keyboard pita yang disempurnakan
  • Peningkatan kontras pada elemen UI

Jenis akses data "Timpa" baru untuk Time Travel Debugger

Time Travel Debugger (TTD) sekarang menyediakan jenis akses data "Timpa". Kueri memori seperti dx @$cursession.TTD.Memory() sekarang memiliki kolom tambahan 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 + Klik tautan DML akan menyalinnya ke clipboard

1.0.2007.01003

Marka Buku Garis Waktu

Bookmark posisi Perjalanan Waktu penting di WinDbg alih-alih menyalin secara manual menempelkan posisi ke notepad. Marka buku memudahkan untuk melihat sekilas posisi yang berbeda dalam jejak relatif terhadap peristiwa lain, dan untuk membuat anotasinya.

Anda dapat memberikan nama deskriptif untuk marka buku.

Cuplikan layar dialog bookmark baru dengan nama contoh untuk panggilan API pertama di aplikasi Display Greeting.

Akses Bookmark melalui jendela Garis Waktu yang tersedia di Lihat > Garis Waktu. Saat Anda mengarahkan mouse ke atas bookmark, bookmark akan menampilkan nama bookmark.

Cuplikan layar garis waktu WinDbg dengan tiga marka buku dan tipsalat yang menampilkan nama marka buku.

Anda dapat memilih dan menahan (atau mengklik kanan) marka buku untuk melakukan perjalanan ke posisi tersebut, mengganti nama atau menghapus marka buku.

Cuplikan layar menu popup klik kanan bookmark dengan opsi untuk melakukan perjalanan ke posisi, mengedit, dan menghapus.

Jendela Modul

Jendela baru memperlihatkan modul dan informasi terkaitnya, tersedia melalui pita Tampilan. Laporan ini menampilkan:

  • Nama modul termasuk lokasi jalur
  • Ukuran dalam byte modul yang dimuat
  • Alamat dasar tempat modul dimuat
  • Versi file

Cuplikan layar jendela tampilan Modul WinDbg menampilkan lima modul yang tercantum.

Nama/deskripsi utas tersedia dalam penelusuran kesalahan langsung

Nama utas yang diatur dari SetThreadDescription sekarang tersedia saat melakukan penelusuran kesalahan mode pengguna langsung. Nama utas tersedia 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 telah ditambahkan. Format PDB Portabel (Database Program) menjelaskan pengodean informasi penelusuran kesalahan yang dihasilkan oleh pengkompilasi bahasa Common Language Infrastructure (CLI) dan digunakan oleh debugger dan alat lainnya. Untuk informasi selengkapnya, lihat Simbol PDB Portabel.

Perubahan lain dan perbaikan bug

  • WinDbg sekarang mendukung debugging cadangan kernel AMD64 dan Linux.
  • Peningkatan perekaman perjalanan waktu dan perbaikan lainnya.

1.0.1912.11001

Garis Waktu TTD - Kami telah menambahkan jendela baru yang menampilkan representasi visual peristiwa penting dalam jejak Anda: pengecualian, titik henti, panggilan fungsi, dan akses memori. Garis waktu akan 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, sementara lebih cantik, menyebabkan beberapa masalah penskalaan dan pengubahan ukuran untuk sejumlah orang penting, jadi kami telah memilih untuk menghapusnya untuk saat ini.

Menu file meningkatkan navigasi keyboard - Menu file sekarang jauh lebih mudah dinavigasi hanya dengan keyboard.

Perubahan lain dan perbaikan bug

  • Jendela tumpukan dan lokal sekarang akan dinonaktifkan ketika target Anda berjalan dan tidak akan menampilkan "Kesalahan yang tidak ditentukan" ketika tidak ada target.
  • Menambahkan kolom "Layanan" ke dialog lampirkan untuk menemukan layanan mana yang berjalan dengan mudah.
  • Memperbaiki bug yang menyebabkan deteksi arsitektur tidak berfungsi saat meluncurkan aplikasi dengan argumen.
  • Jendela pembongkaran telah meningkatkan pembongkaran ketika simbol privat dimuat.
  • jsprovider.dll sekarang dimuat secara otomatis, jadi kami menghapus tombol "Muat JSProvider" dari pita pembuatan skrip.

1.0.1908.30002

Penyempurnaan kueri Panggilan objek - Panggilan TTD sekarang menyertakan nama parameter, jenis, dan nilai. Saat mengkueri seluruh jejak untuk panggilan fungsi, Anda bisa mendapatkan parameter yang sepenuhnya di ketik dan nilainya sehingga mudah untuk memfilter hasil menurut parameter.

Dukungan untuk Open Enclave - Pratinjau WinDbg sekarang dapat men-debug aplikasi Open Enclave (OE) untuk informasi selengkapnya, lihat Debugging Enklave Terbuka).

ELF Core Dumps - Sebagai bagian dari mendukung Open Enclave, WinDbg dapat membuka cadangan inti ELF dan biner serta simbol DWARF (DWARF 5 saat ini tidak didukung) dari aplikasi Enklave dan Linux. Saat 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 akan berfungsi. File ELF dan DWARF akan diunduh dari server simbol mengikuti konvensi kunci yang ditentukan di sini. Enklave adalah satu-satunya skenario yang didukung, tetapi kami terbuka untuk umpan balik tentang membuka cadangan inti Linux lainnya.

Perubahan format File TTD - Kami telah membuat pembaruan besar ke format file untuk jejak TTD yang memecah kompatibilitas ke depan. Versi Pratinjau WinDbg sebelumnya tidak akan dapat membuka jejak yang direkam dengan Versi Pratinjau WinDbg (dan yang akan datang) ini, tetapi versi ini (dan yang akan datang) akan dapat membuka jejak baru dan lama.

Perubahan lain

  • TTD sekarang akan menggunakan mesin 64-bit untuk pengindeksan dan bitness mesin debugger yang sesuai untuk pemutaran ulang untuk meminimalkan potensi masalah memori saat mengindeks dan masalah SOS saat memutar ulang.
  • Menjalankan 'dx' tanpa parameter apa pun sekarang akan menampilkan namespace layanan akar untuk penelusuran yang lebih mudah.
  • Anda sekarang dapat mengubah simbol default dan lokasi cache sumber melalui menu pengaturan.
  • Peningkatan dukungan untuk merekam AVX-512 (perekaman AVX-512 akan menyebabkan perlambatan yang lebih besar dari normal).
  • Kami telah mengaktifkan lisensi offline.

1.0.1905.12001

Peningkatan mitigasi kesalahan SymSetDiaSession - Perbaikan kami bulan lalu untuk mengurangi kesalahan yang disebabkan oleh aplikasi yang menyuntikkan DbgHelp ke dalam proses kami masih tidak berfungsi dalam beberapa skenario. Kami telah melakukan penyempurnaan untuk itu dan akan terus memantau umpan balik tentang kesalahan ini.

Penyesuaian warna aksen - Banyak skenario membutuhkan beberapa instans WinDbg terbuka, dan bergerak bolak-balik di antara mereka dapat membingungkan dan meluangkan waktu untuk mencari tahu mana yang "benar". Kami telah menambahkan kemampuan untuk mengubah warna aksen biru untuk membantu membedakan sesi secara visual dan mempermudah pertukaran.

Cukup pilih pita Tampilan dan pilih opsi untuk Warna aksen di bagian terakhir. Ketika sesi mendatang diluncurkan dari target terbaru, warna aksen akan dipertahankan 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 - Peningkatan dukungan untuk variabel lokal coroutine dan variabel tertentu yang dioptimalkan.

Pengaturan cache simbol dan sumber default - Menambahkan opsi ke menu pengaturan di bawah Pengaturan penelusuran kesalahan untuk mengubah lokasi cache untuk simbol. Catatan - Ada masalah umum yang membuat ini kosong akan menyebabkan pemuatan sumber gagal. Kami akan menambahkan validasi untuk mencegah hal ini terjadi dalam rilis mendatang.

Perbaikan -pv - Memperbaiki bug yang mungkin telah mencegah -pv (lampiran non-invasif) bekerja dalam beberapa keadaan.

1.0.1904.18001

Perbaikan untuk kesalahan SymSetDiaSession - Kami telah memiliki laporan untuk sementara waktu kesalahan yang mencegah Pratinjau WinDbg diluncurkan dalam beberapa situasi. Ada beberapa aplikasi eksternal yang 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 telah menambahkan perbaikan untuk ini dan akan melacak apakah masih ada skenario di mana hal itu terjadi.

Kontrol font - Kami telah menambahkan pengaturan untuk mengontrol font dan ukuran font. Ada dua pengaturan yang berbeda, satu untuk jendela teks (jendela berspasi mono seperti pembongkaran, sumber, perintah, dll.) dan satu untuk jendela alat (lokal, tumpukan, dll.). Masih ada beberapa area yang tidak terpengaruh oleh opsi ini yang akan kami perbarui di masa mendatang.

Menyoroti penyempurnaan - Penyorotan teks persisten di jendela perintah sekarang juga akan menyoroti teks di jendela sumber dan catatan.

Peningkatan pemuatan sumber - Kami telah mengubah cara kerja memuat file sumber. Sebelumnya saat membuka file sumber, operasi mesin seperti menjalankan perintah tambahan tidak dimungkinkan atau tidak dapat diprediksi. Kami telah mengubah di mana pemuatan terjadi untuk memungkinkan paralelisme yang lebih baik dan pembatalan operasi pembukaan sumber yang lebih andal.

Perubahan lain dan perbaikan bug:

  • Menambahkan "Buka pembongkaran" ke menu konteks jendela sumber.
  • Menambahkan kotak centang ke "Ikuti instruksi saat ini" di jendela pembongkaran.
  • Memperbaiki bug yang menyebabkan jendela perintah berkinerja lambat saat menghasilkan banyak teks.
  • Halaman yang diubah ke atas dan tombol page down agar berfungsi mirip dengan Visual Studio.
  • Ketika file ASM dibuka di jendela sumber, sekarang akan memiliki komentar dasar, string, dan penyorotan direktif

1.0.1812.12001

Versi ini mencakup pembaruan ini.

Header C++ model data debugger - Ada header C++ baru, DbgModel.h, disertakan sebagai bagian dari Windows SDK untuk memperluas model data debugger melalui C++. Anda dapat menemukan informasi selengkapnya di Gambaran Umum Debugger Data Model C++. Rilis ini mencakup ekstensi baru yang menambahkan beberapa fitur "gaya API" lainnya ke model data debugger yang dapat diakses melalui perintah 'dx', JavaScript, dan header DbgModel.h baru. Ekstensi ini ekstensi 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 di sini - https://github.com/Microsoft/WinDbg-Samples/tree/master/SyntheticTypes. Ekstensi JavaScript ini membaca file header C dasar dan menentukan informasi jenis sintetis untuk struktur dan serikat yang ditentukan di header. Melalui perintah dx, memori kemudian dapat dilihat terstruktur seolah-olah Anda memiliki PDB dengan informasi jenis untuk jenis tersebut.

Perubahan lain dan perbaikan bug:

  • Pratinjau WinDbg sekarang akan lebih cerdas menangani membawa jendela sumber atau jendela pembongkaran ke latar depan saat melangkah.
  • Susun ulang judul jendela Pratinjau WinDbg untuk memiliki informasi yang lebih penting di awal saat penelusuran kesalahan kernel.
  • Kontras latar belakang alternatif di jendela perintah harus sedikit lebih terlihat.

1.0.1810.2001

Versi ini mencakup pembaruan ini.

  • Dialog Pengaturan baru yang diakses dari menu File atau pita Beranda.
  • Dialog pengaturan peristiwa dan pengecualian. Menu ini mengubah cara debugger menangani peristiwa dan pengecualian, yang setara dengan perintah 'sx' atau dialog filter peristiwa WinDbg. Pilih Pengaturan pada pita beranda, lalu tekan "Peristiwa dan Pengecualian" di sebelah kiri untuk mengelolanya.
  • Pengindeks TTD yang ditingkatkan dengan performa yang lebih baik. Ini meningkatkan performa pengindeksan file jejak TTD, membuat proses pengindeksan jauh lebih cepat (antara 2x-10x) sambil membuat file indeks jauh lebih kecil (~ 50% lebih kecil). Peningkatan perf paling terlihat untuk jejak berukuran lebih dari 4GB, atau saat menggunakan mesin dengan banyak inti CPU (8+). Pengindeks baru membuatnya lebih layak untuk men-debug jejak yang sangat besar (50GB+).
  • Bendera peluncuran debugArch baru untuk menentukan arsitektur. Pratinjau WinDbg mencoba meluncurkan mesin debugger dengan bitness yang benar ke target untuk 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 -debugArch x86|amd64 untuk mengontrol arsitektur mesin debugger.

Perubahan lain dan perbaikan bug:

  • Memperbaiki bug yang akan menyebabkan bilah hitam muncul pada debugger layar penuh dengan jendela mengambang terbuka.
  • Memperbaiki bug yang akan menyebabkan opsi simbol dihapus secara tidak sengaja.
  • Riwayat perintah sekarang dipertahankan saat meluncurkan dari target terbaru.
  • Di jendela model data, Anda sekarang dapat mengedit nilai.
  • Jejak TTD yang tidak diindeks sekarang akan lebih jelas bahwa jejak TTD tidak diindeks.
  • Peningkatan performa jendela lokal
  • Menambahkan tombol pita untuk menyimpan log jendela perintah ke file.
  • Ditambahkan. PilihMany(<proyeksi>) ke kumpulan default metode LINQ.

1.0.1807.11002

Versi ini mencakup pembaruan ini.

Penyimpanan otomatis dan pemuatan titik henti. Ini adalah langkah pertama untuk mengganti ruang kerja. Kami memulai rute tersebut dengan mengaktifkan penyimpanan dan pemuatan titik henti. Meluncurkan sesuatu yang telah Anda debug sebelumnya dari tab "Terbaru" di menu file sekarang akan 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 memproses konteks tertentu serta kondisi saat ini tidak disimpan.

Perubahan kecil dan perbaikan bug:

  • Menambahkan opsi baris perintah -x, -xe, -xd, -xn, dan -xi untuk mengontrol penanganan pengecualian dan peristiwa. Opsi baris perintah ini berulah sama seperti bagian penghitung perintahnya.
  • Jendela catatan sekarang mendukung pemformatan tebal, garis bawah, dan miring.
  • Memperbaiki beberapa masalah zoom dan pengguliran.
  • Memilih teks dalam perintah, memori, sumber, atau jendela pembongkaran sekarang akan menampilkan sorotan cahaya di atas instans lain dari teks yang dipilih.
  • Memperbaiki bug di mana mengganggu pemuatan simbol akan menyebabkan pemuatan simbol gagal untuk sisa sesi.
  • NatVis sekarang akan memuat ulang dengan benar saat memulai ulang sesi.

1.0.1805.17002

Versi ini mencakup pembaruan ini.

Jendela pembongkaran baru - Jendela pembongkaran sekarang mencakup:

  • Menggulir ke atas atau ke bawah akan terus memuat lebih banyak pembongkaran jika memungkinkan.
  • Penyorotan sintaks untuk angka, alamat kode, dan opcode.
  • Memilih simbol kode akan melompati jendela pembongkaran ke lokasi tersebut.
  • Mengarahkan mouse ke atas angka akan menampilkan tipsalat yang mengonversi angka tersebut ke basis lain.
  • Header yang menandakan dimulainya fungsi.

Jendela sumber yang lebih cepat - Jendela sumber telah diperbarui agar lebih cepat dan lebih efisien sumber daya.

Perubahan kecil dan perbaikan bug:

  • Memperbaiki masalah sekeliling penembolokan simbol
  • Memperbaiki beberapa kasus di mana ganti jeda awal tidak dapat digunakan ketika target tidak rusak
  • Jika Anda menekan tab di jendela perintah tanpa ada yang tersedia, kursor sekarang akan tetap berada di bidang input
  • Pratinjau WinDbg sekarang akan mendeteksi bitness secara otomatis saat membuka file CAB

1.0.1804.18003

Versi ini mencakup pembaruan ini.

Status simbol dan peningkatan pembatalan - Ada waktu di mana debugger menampilkan simbol pemuatan SIBUK dan sulit untuk menentukan apa yang dilakukannya dan mengapa tanpa !sym noisy diaktifkan. Kami telah memperbarui Pratinjau WinDbg untuk memiliki beberapa komunikasi yang lebih baik tentang apa yang dilakukannya saat memuat simbol untuk membantu memecahkan masalah apa pun. Selain dengan mudah melihat persis apa yang terjadi, kami telah membuat beberapa perubahan yang harus membuat simbol pembatalan lebih andal dan jendela Log akan berisi beberapa detail yang biasanya keluaran ketika !sym noisy diaktifkan. Jika Anda menekan Lihat -> Log, Anda akan 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. Cukup tekan Lihat -> "Catatan" untuk membukanya. Jika Anda menyalin/menempelkannya, tautan DML akan 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 eksperimental yang lebih cepat - Untuk membantu meningkatkan performa Pratinjau WinDbg ada jendela sumber baru eksperimental yang cukup sedikit lebih efisien. Masih ada beberapa celah di sekitar menu konteks dan penyorotan sintaks, tetapi kami ingin memberi semua orang opsi untuk mencobanya sebelum selesai untuk memberi kami umpan balik awal. Jalankan $UseFastSourceWindow untuk menggunakannya. Jika Anda ingin kembali ke yang lama, jalankan $UseMonacoSourceWindow. Pengaturan akan dipertahankan di seluruh sesi, Anda harus menutup dan sumber terbuka kembali jendela untuk mendapatkan versi baru.

JSProvider API versi 1.2 - Untuk ekstensi JavaScript yang mendeklarasikan dukungan untuk API versi 1.2:

  • Objek apa pun dengan metode .compareTo yang keluar dari skrip akan memiliki komparator kustom di atasnya (operator perbandingan akan berfungsi di evaluator DX dan di tempat lain: misalnya: IModelObject::Compare)
  • Setiap objek dengan metode .equals yang keluar dari skrip akan memiliki operator kesetaraan kustom di atasnya (== dan != akan berfungsi di evaluator DX dan di tempat lain: misalnya: IModelObject::IsEqualTo)
  • Objek model asli atau data yang memasukkan skrip akan memiliki .compareTo dan .equals di atasnya yang memungkinkan akses ke komparator kustom atau implementasi kesetaraan kustom.

Perubahan kecil dan perbaikan bug:

  • .server sekarang akan mencantumkan nama domain yang sepenuhnya memenuhi syarat untuk penggunaan yang lebih mudah ketika ada masalah domain di sekitar nama pendek.
  • Ctrl+G sekarang berfungsi di jendela sumber.
  • Menambahkan bilah alamat ke jendela pembongkaran.
  • Pratinjau WinDbg sekarang akan menangani _NT_SYMBOL_PATH dengan cara yang lebih diharapkan.
  • Menambahkan opsi baris perintah -server.
  • Kueri model data TTD sekarang dapat ditampilkan secara progresif, jadi jika Anda mengganggunya, Anda masih akan melihat beberapa hasil. Fitur ini masih bersifat eksperimental dan opsional. Jalankan dx @$cursession.TTD.AsyncQueryEnabled = 1 untuk mengaktifkannya.
  • Perintah 'dps' sekarang memiliki tautan ke file sumber yang dirujuknya.

1.1801.19001.0

Versi ini mencakup pembaruan ini.

Penyorotan Teks - Anda sekarang dapat menyoroti semua instans teks yang dipilih langsung di debugger. Untuk menggunakan fitur ini, cukup pilih beberapa teks di jendela perintah lalu pilih "Sorot" di pita perintah atau tekan CTRL+ALT+H. Menggunakan salah satu dari teks yang sudah disorot akan menghapus penyorotan.

Jika Anda lebih suka menggunakan perintah, Anda dapat menggunakan perintah "$hl":

$hl ["someValueHere"] - Sorotan berikan teks (atau tidak disorot jika sudah disorot)

$hl clearAll – Hapus semua entri yang disorot

$hl caseSensitive [1|0] - Atur pencocokan sorotan ke peka huruf besar/kecil atau tidak peka huruf besar/kecil (defaultnya tidak peka huruf besar/kecil)

Rilis ini juga mencakup beberapa perbaikan bug kecil.

1.1712.15003.0

Versi ini mencakup pembaruan ini.

Kueri memori TTD - Anda sekarang dapat mengkueri TTD untuk akses memori yang mirip dengan cara Anda mengkueri panggilan hari ini. Ini memungkinkan Anda 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")

Pengaturan perubahan - Pratinjau WinDbg sekarang akan 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 menerapkan gagasan sebanding atau sama kustom yang akan berfungsi di dx menggunakan operator C++ standar atau dalam operasi LINQ. Untuk menggunakan ini, skrip harus mendeklarasikan dalam array initializeScript bahwa ia mendukung versi baru API host dengan menyisipkan rekaman "new host.apiVersionSupport(1, 2)". Setelah selesai, Anda dapat menggunakan fungsi-fungsi ini dalam kueri LINQ Jendela Model Data atau 'dx' apa pun. Jika metode mengimplementasikan .compareTo(other), itu sebanding (operator perbandingan bekerja di dx dan LINQ). Jika metode mengembalikan nilai negatif, seperti "ini < lainnya". Jika metode mengembalikan nol, "ini == lainnya". Jika metode mengembalikan nilai positif "ini > lainnya". Jika metode mengimplementasikan .equals(other), itu sama (== bekerja di dx dan LINQ). Metode harus mengembalikan true atau false.

Perubahan kecil dan perbaikan bug:

  • Memperbaiki bug di mana tumpukan dan jendela lokal tidak berfungsi selama penelusuran kesalahan boot
  • Memperbarui output LM untuk melaporkan ProductVersion dan bidang serupa dengan lebih akurat
  • Mengaktifkan tombol "keluar kembali" selama sesi TTD
  • Menambahkan dukungan untuk -lsrcpath
  • Header di jendela lokal, jam tangan, dan model sekarang tidak hilang saat menggulir ke bawah
  • Ketika ALT+Tabbing kembali ke Pratinjau WinDbg, jendela perintah akan mempertahankan lokasi kursor dengan benar
  • Menambahkan pintasan CTRL+ALT+V untuk beralih mode verbose
  • Anda sekarang dapat menonaktifkan pengguliran otomatis jendela perintah dengan memilih dan menahan (atau mengklik kanan) tab jendela perintah dan memilih "matikan gulir otomatis"
  • Anda sekarang dapat men-debug proses anak melalui halaman tingkat lanjut yang dapat dieksekusi peluncuran.

1.0.14.0

Versi ini mencakup pembaruan ini.

Pengalaman server proses yang ditingkatkan - Pemberitahuan baru di menu File untuk menunjukkan server proses apa yang Anda sambungkan dan berinteraksi telah ditambahkan. Sebagai bagian dari perubahan ini, saat mengakhiri sesi penelusuran kesalahan, koneksi server proses akan tetap ada dan dapat terputus di menu File.

Opsi tata letak prasetel baru di pita Tampilan - Ada opsi "Tata Letak" baru di pita "Tampilan". Saat ini ada tiga tata letak: default, satu berfokus pada pembongkaran, dan satu minimal.

Pita Penelusuran Kesalahan Perjalanan Waktu - Ada pita Perjalanan Waktu yang disempurnakan yang akan muncul saat menelusuri kesalahan penelusuran kesalahan perjalanan waktu.

Metadata dari skrip JavaScript - Ekstensi JavaScript sekarang dapat mengembalikan metadata untuk properti dan konstruksi lainnya. Ini berarti bahwa ekstensi dapat memberikan string bantuan, menunjukkan radiks tampilan untuk nilai, dan banyak lagi. Metadata disediakan dengan menempatkan deskriptor metadata pada objek melalui kehadiran Symbol.metadataDescriptor atau panggilan eksplisit ke host.metadata.defineMetadata. Fungsi mengembalikan, nilai yang diulang, dan konteks nilai lainnya dapat mengembalikan metadata untuk nilainya melalui host.metadata.valueWithMetadata.

Pembaruan API JavaScript - Beberapa perubahan pemecahan tingkat sumber yang berpotensi dilakukan pada API dalam penyedia JavaScript (termasuk metode dan properti baru yang diproyeksikan pada objek asli). 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.apiVersionSupport dalam array yang dikembalikan oleh initializeScript dengan klaim mendukung versi 1.1. Mungkin? .. dengan nilai yang menunjukkan dukungan untuk versi 1.1.

Perubahan API versi 1.1 meliputi:

  • host.getModuleSymbol dan host.getModuleType mengembalikan null jika mereka tidak dapat menemukan simbol alih-alih melempar pengecualian.
  • Semua objek asli memiliki properti alamat di dalamnya selain .targetLocation. Jika objek tidak memiliki alamat, pengecualian akan dilemparkan saat mengakses properti.
  • Semua objek asli memiliki metode .getObjectValue dan .setObjectValue baru untuk mengakses properti pada objek yang mungkin bertentangan dengan nama tempat JavaScript pada objek (misalnya: 'alamat') .

Perubahan JavaScript tambahan

  • Ekstensi JavaScript sekarang dapat menambahkan dan menghapus properti pada objek model data melalui Object.defineProperty dan operator penghapusan. Menambahkan atau mendaftarkan kelas JavaScript sebagai model induk atau tanda tangan jenis masih merupakan cara yang sangat disukai untuk memanipulasi model objek.
  • Ekstensi JavaScript sekarang dapat memodifikasi variabel global dalam modul di target debug melalui API host.setModuleSymbol baru.
  • Semua fungsi matematika yang ada pada jenis pustaka 64-bit (misalnya: .add, .subtract, .multiply, .divide, dll...) sekarang ada di nomor JavaScript juga.
  • 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 titik henti dalam debugger skrip sekarang dapat memecah nama fungsi selain posisi baris/kolom.
  • Jenis objek di ekstensi JavaScript memiliki akses ke modul yang berisinya melalui properti .containingModule.

Perubahan kecil dan perbaikan bug:

  • Memperbaiki pemformatan tab pita bersyarat menjadi kurang membingungkan.
  • DML yang dikerjakan kembali agar lebih ketat dalam penguraian untuk meningkatkan performa.
  • Berbagai perbaikan dengan performa dan perilaku CTRL+F.
  • Menambahkan peringatan saat menjalankan tidak ditingkatkan 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 yang diketahui:

  • SOS tidak akan bekerja pada jejak x86.

1.0.13.0

Versi ini menambahkan Pelacakan Perjalanan Waktu. Penelusuran Kesalahan Perjalanan Waktu, memungkinkan Anda merekam proses, lalu memutarnya kembali nanti baik ke depan maupun mundur. Penelusuran Kesalahan Perjalanan Waktu (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 Penelusuran Kesalahan Perjalanan Waktu - Gambaran Umum.

1.0.12.0

Versi ini adalah rilis pertama Pratinjau WinDbg. Untuk informasi umum tentang fitur yang tersedia di Pratinjau WinDbg, Fitur Utama WinDbg.

Lihat Juga

WinDbg – Penginstalan

WinDbg – Opsi startup baris perintah