Memperkenalkan Debugging Perjalanan Waktu untuk Visual Studio Enterprise 2019

Pratinjau Time Travel Debugging (TTD) di Visual Studio Enterprise 2019 menyediakan kemampuan untuk merekam aplikasi Web yang berjalan pada Mesin Virtual Azure (VM) dan kemudian secara akurat merekonstruksi dan memutar ulang jalur eksekusi. TTD terintegrasi dengan penawaran Snapshot Debugger kami dan memungkinkan Anda untuk memundurkan dan memutar ulang setiap baris kode sebanyak yang Anda inginkan, membantu Anda mengisolasi dan mengidentifikasi masalah yang mungkin hanya terjadi di lingkungan produksi.



Artikel ini di blog

Jenis debugging paling efektif sering terjadi pada apa yang kita sebut "loop dalam". Saat Anda sedang bertindak meninjau dan men-debug kode secara lokal, sebelum Anda mendorong ke kontrol versi. Masalah yang kami temui selama pengembangan loop internal biasanya lebih mudah dipahami dan didiagnosis karena mereka dapat diakses dan diulang.


Hari ini, kami senang mengumumkan rilis Time Travel Debugging (TTD) di Visual Studio Enterprise. Dengan TTD, kami memberi Anda kekuatan untuk merekam kode yang dieksekusi dalam produksi dan memutar ulang jalur eksekusi di dalam Visual Studio. TTD juga memberi Anda kemampuan untuk bergerak maju dan mundur dalam waktu seolah-olah Anda melakukan debugging "loop dalam" secara lokal. Anda juga mendapatkan akses ke fitur debugging penting seperti penduduk lokal dan tumpukan panggilan.


Debuggers hari ini biasanya memungkinkan Anda untuk berhenti pada breakpoint tertentu dengan menghentikan seluruh proses dan kemudian hanya bergerak maju. Bahkan dengan alat debugging yang lebih canggih seperti IntelliTrace , Anda merekam acara dan data pada saat-saat tertentu. TTD memiliki keuntungan signifikan dibandingkan snapshot, logging atau crash dump file, karena metode ini umumnya tidak memiliki detail yang tepat dari jalur eksekusi yang mengarah pada kegagalan atau bug terakhir.


Apa yang dimaksud dengan Debugging Perjalanan Waktu?

Time Travel Debugging (TTD) adalah solusi debugging terbalik yang memungkinkan Anda untuk merekam eksekusi kode dalam aplikasi atau proses dan memutar ulang baik maju dan mundur. TTD meningkatkan debugging karena Anda dapat kembali ke masa lalu untuk lebih memahami kondisi yang mengarah ke bug tertentu. Selain itu, Anda dapat memutar ulang beberapa kali untuk memahami cara terbaik untuk memperbaiki masalah. Teknologi TTD baru-baru ini diperkenalkan dalam versi pratinjau WinDbg untuk skenario kode asli .


Kami telah memperpanjang Debugger Snapshot dengan TTD untuk memungkinkan Anda merekam aplikasi Anda saat dijalankan. Rekaman itu kemudian dapat diputar di Visual Studio 2019 Enterprise di mana Anda dapat memundurkan dan memutar ulang setiap baris kode sebanyak yang Anda inginkan. Catatan TTD pada utas yang cocok dengan kondisi snappoint dan umumnya akan berjalan sampai akhir metode. Jika ada "menunggu" setelah snappoint tetapi sebelum akhir metode, kami akan berhenti merekam di mana menunggu terjadi. Fitur ini akan dipratinjau untuk rilis Visual Studio 2019 dengan lisensi go live. Kami berencana untuk menambah lebih banyak skenario TTD di pembaruan mendatang.


Memulai dengan TTD

Pratinjau Time Travel Debugging dapat diaktifkan di versi terbaru dari Visual Studio Enterprise 2019 untuk Mesin Virtual Azure pada OS Windows yang menjalankan ASP.NET (4.8+) .


Setelah menginstal versi terbaru dari Visual Studio Enterprise, selesaikan langkah-langkah berikut:


1. Buka proyek yang Anda inginkan untuk Time Travel Debug - pastikan Anda memiliki versi kode sumber yang sama yang diterbitkan untuk Mesin Virtual Azure Anda.


2. Pilih Debug> Lampirkan Snapshot Debugger dan pilih Mesin Virtual Azure yang digunakan proyek Anda bersama dengan akun penyimpanan Azure. Anda akan diminta untuk menginstal ekstensi situs Snapshot Debugger saat percobaan pertama kali dilakukan.


3. Pilih opsi Debug Travel Time dan kemudian klik Lampirkan . Setelah Visual Studio dalam mode Snapshot Debugger, ia akan mampu merekam menggunakan TTD.



4. Buat snappoint dan konfigurasikan untuk memungkinkan debugging perjalanan waktu. Klik Mulai \ Perbarui Koleksi .



5. Setelah Snapshot Anda dikumpulkan klik pada Lihat Snapshot dan Anda dapat menggunakan bilah perintah untuk melangkah maju dan mundur dalam metode yang direkam.



Batasan pratinjau TTD

Selama tahap pratinjau awal TTD kami akan mendukung aplikasi Web AMD64 berjalan pada Mesin Virtual Azure (VM). Kami berharap bahwa rekaman akan menambah overhead yang signifikan untuk proses Anda berjalan, memperlambatnya berdasarkan ukuran proses dan jumlah utas aktif. Kami juga mengantisipasi pengalaman debugging yang menurun dalam beberapa skenario berikut: -


  • Selama fase pemadatan GC.
  • Melangkah melalui metode yang dioptimalkan misalnya ketika Anda melangkah ke metode yang tidak mengandung snappoint.
  • Jika aplikasi Anda memuat atau membongkar domain aplikasi secara internal.
  • Rekaman hanya terjadi pada utas yang dipicu oleh snappoint, kode yang kemudian berdampak pada utas alternatif juga akan terdegradasi.

Harap Dicatat: kami juga tidak akan mencatat rantai kausalitas async.


Selama pengujian pratinjau, kami menemukan bahwa ukuran file TTD berkisar dari beberapa ratus megabita hingga beberapa gigabita tergantung pada berapa lama sesi Anda berlangsung dan berapa lama aplikasi web berjalan. Namun, file yang dibuat oleh TTD akan dibersihkan setelah sesi Snapshot Debugger berakhir, dan daur ulang kumpulan aplikasi dimulai. Untuk rilis pratinjau kami, kami juga merekomendasikan penggunaan VM dengan minimal 8GB RAM.


Coba TTD sekarang!

Kami sangat senang tentang bagaimana fitur pratinjau ini dapat membantu meningkatkan pengalaman debug Anda di Azure, tetapi ini baru permulaan. Tim kami terus merancang dan membangun kemampuan TTD tambahan yang kami rencanakan untuk ditambahkan dalam rilis Visual Studio mendatang.


Kami mengandalkan umpan balik Anda melalui Komunitas Pengembang kami dan Hub Umpan Balik, Anda dapat membantu kami memprioritaskan perbaikan apa yang harus dilakukan karena kami benar-benar menghargai semua tanggapan yang Anda berikan.


Avatar
Mark downie

Manajer Program, Visual Studio Production Diagnostics

Source: https://habr.com/ru/post/id448778/


All Articles