Salah satu fitur utama dari Visual Studio Code adalah dukungan debugnya yang hebat. Debugger bawaan VS Code membantu mempercepat proses edit, kompilasi, dan debug Anda Show
Ekstensi debuggerVS Code memiliki dukungan debug bawaan untuk Node. js runtime dan dapat men-debug JavaScript, TypeScript, atau bahasa lain apa pun yang dialihkan ke JavaScript Untuk men-debug bahasa dan runtime lain (termasuk PHP, Ruby, Go, C#, Python, C++, PowerShell, dan banyak lainnya), cari ekstensi Di bawah ini adalah beberapa ekstensi populer yang menyertakan dukungan debugging
Mulai men-debugDokumentasi berikut didasarkan pada Node bawaan. js debugger, tetapi sebagian besar konsep dan fitur juga berlaku untuk debugger lainnya Sangat membantu untuk terlebih dahulu membuat sampel Node. js sebelum membaca tentang debugging. Anda dapat mengikuti Node. Panduan js untuk menginstal Node.js. js dan buat aplikasi JavaScript "Hello World" sederhana ( 0). Setelah Anda menyiapkan aplikasi sederhana, halaman ini akan membawa Anda melalui fitur debugging VS CodeTampilan Jalankan dan DebugUntuk memunculkan tampilan Run and Debug, pilih ikon Run and Debug di Activity Bar di samping VS Code. Anda juga dapat menggunakan pintasan keyboard ⇧⌘D (Windows, Linux Ctrl+Shift+D). Tampilan Jalankan dan Debug menampilkan semua informasi yang terkait dengan menjalankan dan debugging dan memiliki bilah atas dengan perintah debug dan pengaturan konfigurasi Jika running dan debugging belum dikonfigurasi (tidak ada 1 yang telah dibuat), VS Code menampilkan tampilan Run startJalankan menuMenu Run tingkat atas memiliki perintah run dan debug yang paling umum Luncurkan konfigurasiUntuk menjalankan atau men-debug aplikasi sederhana di VS Code, pilih Run and Debug pada tampilan awal Debug atau tekan F5 dan VS Code akan . Namun, untuk sebagian besar skenario debug, membuat file konfigurasi peluncuran bermanfaat karena memungkinkan Anda mengonfigurasi dan menyimpan detail penyiapan debug. VS Code menyimpan informasi konfigurasi debug dalam file 1 yang terletak di folder 3 di ruang kerja Anda (folder root proyek) atau di atauUntuk membuat file _1, klik buat peluncuran. tautan file json di tampilan Jalankan mulaiVS Code akan mencoba mendeteksi lingkungan debug Anda secara otomatis, tetapi jika gagal, Anda harus memilihnya secara manual Berikut adalah konfigurasi peluncuran yang dibuat untuk Node. js debug
Jika Anda kembali ke tampilan File Explorer ( ⇧⌘E (Windows, Linux Ctrl . )), you'll see that VS Code has created a 3 folder and added the 1 file to your workspace.
Perhatikan bahwa atribut yang tersedia dalam konfigurasi peluncuran bervariasi dari debugger ke debugger. Anda dapat menggunakan saran IntelliSense ( ⌃Space (Windows, Linux Ctrl+Space)) to find out which attributes exist for a specific debugger. Hover help is also available for all attributes. Jangan berasumsi bahwa atribut yang tersedia untuk satu debugger secara otomatis juga berfungsi untuk debugger lainnya. Jika Anda melihat coretan hijau dalam konfigurasi peluncuran, arahkan kursor ke coretan tersebut untuk mempelajari masalahnya dan coba perbaiki sebelum meluncurkan sesi debug Tinjau semua nilai yang dihasilkan secara otomatis dan pastikan nilainya masuk akal untuk proyek dan lingkungan debug Anda Luncurkan versus lampirkan konfigurasiDalam VS Code, ada dua mode debugging inti, Launch dan Attach, yang menangani dua alur kerja dan segmen pengembang yang berbeda. Bergantung pada alur kerja Anda, mengetahui jenis konfigurasi apa yang sesuai untuk proyek Anda bisa membingungkan Jika Anda berasal dari latar belakang Alat Pengembang browser, Anda mungkin tidak terbiasa "meluncurkan dari alat Anda", karena instance browser Anda sudah terbuka. Saat Anda membuka DevTools, Anda cukup melampirkan DevTools ke tab browser yang terbuka. Di sisi lain, jika Anda berasal dari server atau latar belakang desktop, cukup normal jika editor Anda meluncurkan proses untuk Anda, dan editor Anda secara otomatis melampirkan debuggernya ke proses yang baru diluncurkan. Cara terbaik untuk menjelaskan perbedaan antara launch dan attach adalah dengan memikirkan konfigurasi launch sebagai resep untuk memulai aplikasi Anda dalam mode debug sebelum VS Code dilampirkan padanya, sedangkan konfigurasi attach adalah resep cara menghubungkan VS Code. Debugger Kode VS biasanya mendukung peluncuran program dalam mode debug atau melampirkan ke program yang sudah berjalan dalam mode debug. Bergantung pada permintaan ( 7 atau 8), atribut yang berbeda diperlukan, dan validasi dan saran 1 VS Code harus membantu dengan ituTambahkan konfigurasi baruUntuk menambahkan konfigurasi baru ke 1 yang sudah ada, gunakan salah satu teknik berikut
VS Code juga mendukung konfigurasi peluncuran gabungan untuk memulai beberapa konfigurasi sekaligus; Untuk memulai sesi debug, pertama-tama pilih konfigurasi bernama Luncurkan Program menggunakan tarik-turun Konfigurasi di tampilan Jalankan dan Debug. Setelah Anda menyetel konfigurasi peluncuran, mulai sesi debug dengan F5 . Atau, Anda dapat menjalankan konfigurasi melalui Command Palette ( ⇧⌘P (Windows, Linux Ctrl+Shift+P)) by filtering on Debug: Select and Start Debugging or typing 1 and selecting the configuration you want to debug.Segera setelah sesi debug dimulai, panel DEBUG CONSOLE ditampilkan dan menampilkan hasil debug, dan Bilah Status berubah warna (oranye untuk tema warna default) Selain itu, status debug muncul di Bilah Status yang menampilkan konfigurasi debug aktif. Dengan memilih status debug, pengguna dapat mengubah konfigurasi peluncuran aktif dan memulai proses debug tanpa perlu membuka tampilan Jalankan dan Debug Tindakan debugSetelah sesi debug dimulai, toolbar Debug akan muncul di bagian atas editor TindakanPenjelasanLanjutkan / JedaF5 Lanjutkan. Melanjutkan eksekusi program/skrip normal (hingga breakpoint berikutnya). Berhenti sebentar. Periksa eksekusi kode pada baris saat ini dan debug baris demi baris. Langkah selesai F10 Eksekusi metode selanjutnya sebagai perintah tunggal tanpa memeriksa atau mengikuti langkah-langkah komponennya. Masuk ke F11 Masukkan metode selanjutnya untuk mengikuti eksekusinya baris demi baris. Keluar ⇧F11 (Windows, Linux Shift+F11 )When inside a method or subroutine, return to the earlier execution context by completing remaining lines of the current method as though it were a single command.Restart ⇧⌘F5 (Windows, Linux Ctrl+Shift+F5 )Terminate the current program execution and start debugging again using the current run configuration.Stop ⇧F5 (Windows, Linux Shift+F5 )Terminate the current program execution.
Modus lariSelain men-debug program, VS Code mendukung menjalankan program. Debug. Jalankan (Mulai Tanpa Debugging) tindakan dipicu dengan ⌃F5 (Windows, Linux Ctrl+F5) and uses the currently selected launch configuration. Many of the launch configuration attributes are supported in 'Run' mode. VS Code maintains a debug session while the program is running, and pressing the Stop button terminates the program.
BreakpointBreakpoints dapat diubah dengan mengeklik margin editor atau menggunakan F9 pada baris saat ini. Kontrol breakpoint yang lebih halus (aktifkan/nonaktifkan/terapkan kembali) dapat dilakukan di bagian BREAKPOINTS tampilan Jalankan dan Debug.
Jika debugger mendukung pemecahan berbagai jenis kesalahan atau pengecualian, itu juga akan tersedia di tampilan BREAKPOINTS Perintah Reapply All Breakpoints mengatur semua breakpoint kembali ke lokasi aslinya. Ini berguna jika lingkungan debug Anda "malas" dan "salah menempatkan" breakpoint dalam kode sumber yang belum dijalankan Secara opsional, titik henti sementara dapat ditampilkan di penggaris ikhtisar editor dengan mengaktifkan setelan 7LogpointLogpoint adalah varian dari breakpoint yang tidak "membobol" debugger tetapi mencatat pesan ke konsol. Logpoint sangat berguna untuk menyuntikkan logging sambil men-debug server produksi yang tidak dapat dijeda atau dihentikan Logpoint diwakili oleh ikon berbentuk "berlian". Pesan log adalah teks biasa tetapi bisa menyertakan ekspresi untuk dievaluasi dalam kurung kurawal ('{}') Sama seperti breakpoint biasa, Logpoints dapat diaktifkan atau dinonaktifkan dan juga dapat dikontrol oleh kondisi dan/atau jumlah hit Catatan. Logpoint didukung oleh Node bawaan VS Code. js debugger, tetapi dapat diimplementasikan oleh ekstensi debug lainnya. Ekstensi Python dan Java, misalnya, mendukung Logpoints Inspeksi dataVariabel dapat diperiksa di bagian VARIABEL pada tampilan Jalankan dan Debug atau dengan mengarahkan kursor ke sumbernya di editor. Nilai variabel dan evaluasi ekspresi relatif terhadap bingkai tumpukan yang dipilih di bagian CALL STACK Nilai variabel dapat dimodifikasi dengan tindakan Tetapkan Nilai dari menu konteks variabel. Selain itu, Anda bisa menggunakan tindakan Salin Nilai untuk menyalin nilai variabel, atau tindakan Salin sebagai Ekspresi untuk menyalin ekspresi untuk mengakses variabel Variabel dan ekspresi juga dapat dievaluasi dan ditonton di bagian WATCH tampilan Jalankan dan Debug Nama dan nilai variabel dapat difilter dengan mengetik saat fokus berada di bagian VARIABEL Meluncurkan. atribut jsonAda banyak 1 atribut untuk membantu mendukung berbagai debugger dan skenario debugging. Seperti disebutkan di atas, Anda dapat menggunakan IntelliSense ( ⌃Space (Windows, Linux Ctrl+Space)) to see the list of available attributes once you have specified a value for the 9 attribute.Atribut berikut wajib untuk setiap konfigurasi peluncuran
Berikut adalah beberapa atribut opsional yang tersedia untuk semua konfigurasi peluncuran
Banyak debugger mendukung beberapa atribut berikut
substitusi variabelKode VS membuat jalur yang umum digunakan dan nilai lain tersedia sebagai variabel dan mendukung penggantian variabel di dalam string di 1. Ini berarti Anda tidak perlu menggunakan jalur absolut dalam konfigurasi debug. Misalnya, _4 memberikan jalur root folder ruang kerja, 5 file terbuka di editor aktif, dan 6 variabel lingkungan 'Nama'. Anda dapat melihat daftar lengkap variabel yang telah ditentukan sebelumnya di Referensi Variabel atau dengan memanggil IntelliSense di dalam atribut string 1
Properti khusus platform 8 mendukung penentuan nilai (misalnya, argumen yang akan diteruskan ke program) yang bergantung pada sistem operasi tempat debugger berjalan. Untuk melakukannya, masukkan literal khusus platform ke dalam file 1 dan tentukan properti yang sesuai di dalam literal tersebutDi bawah ini adalah contoh yang meneruskan _0 ke program secara berbeda di Windows
Properti pengoperasian yang valid adalah 1 untuk Windows, 2 untuk Linux, dan 3 untuk macOS. Properti yang ditentukan dalam lingkup khusus sistem operasi menimpa properti yang ditentukan dalam lingkup globalPerhatikan bahwa properti _9 tidak dapat ditempatkan di dalam bagian khusus platform, karena 9 secara tidak langsung menentukan platform dalam skenario debug jarak jauh, dan hal itu akan mengakibatkan ketergantungan siklikPada contoh di bawah ini, debug program selalu berhenti saat masuk kecuali di macOS
Konfigurasi peluncuran globalVS Code mendukung penambahan objek 6 di dalam pengaturan Pengguna Anda. Konfigurasi 6 ini kemudian akan dibagikan ke seluruh ruang kerja Anda. Sebagai contoh
Topik breakpoint tingkat lanjutBreakpoint bersyaratFitur debugging VS Code yang kuat adalah kemampuan untuk mengatur kondisi berdasarkan ekspresi, jumlah hit, atau kombinasi keduanya
Anda dapat menambahkan kondisi dan/atau hitungan hit saat membuat breakpoint sumber (dengan tindakan Add Conditional Breakpoint) atau saat memodifikasi yang sudah ada (dengan tindakan Edit Kondisi). Dalam kedua kasus tersebut, kotak teks sebaris dengan menu tarik-turun terbuka tempat Anda dapat memasukkan ekspresi Dukungan pengeditan kondisi dan hit count juga didukung untuk breakpoint fungsi dan pengecualian. Anda dapat memulai pengeditan kondisi dari menu konteks atau tindakan Edit Kondisi inline yang baru Contoh pengeditan kondisi di tampilan BREAKPOINTS. Jika debugger tidak mendukung breakpoint bersyarat, tindakan Add Conditional Breakpoint dan Edit Condition akan hilang Breakpoint sebarisBreakpoint inline hanya akan terkena ketika eksekusi mencapai kolom yang terkait dengan breakpoint inline. Ini sangat berguna saat men-debug kode yang diperkecil yang berisi banyak pernyataan dalam satu baris Titik putus sebaris dapat disetel menggunakan ⇧F9 (Windows, Linux Shift+F9) or through the context menu during a debug session. Inline breakpoints are shown inline in the editor. Breakpoint sebaris juga dapat memiliki kondisi. Mengedit beberapa breakpoint pada satu baris dimungkinkan melalui menu konteks di margin kiri editor Breakpoint fungsiAlih-alih menempatkan breakpoint secara langsung dalam kode sumber, debugger dapat mendukung pembuatan breakpoint dengan menentukan nama fungsi. Ini berguna dalam situasi di mana sumber tidak tersedia tetapi nama fungsi diketahui Breakpoint fungsi dibuat dengan menekan tombol + di header bagian BREAKPOINTS dan memasukkan nama fungsi. Breakpoint fungsi ditampilkan dengan segitiga merah di bagian BREAKPOINTS Breakpoint dataJika debugger mendukung breakpoint data, mereka dapat diatur dari tampilan VARIABLES dan akan terkena dampak ketika nilai variabel yang mendasarinya berubah. Breakpoint data ditampilkan dengan heksagon merah di bagian BREAKPOINTS REPL Konsol DebugEkspresi dapat dievaluasi dengan fitur Debug Console REPL (Read-Eval-Print Loop). Untuk membuka Konsol Debug, gunakan tindakan Konsol Debug di bagian atas panel Debug atau gunakan Tampilan. Perintah Konsol Debug ( ⇧⌘Y (Windows, Linux Ctrl+Shift+Y)). Expressions are evaluated after you press Enter dan Debug Console REPL menampilkan saran saat Anda mengetik. Jika Anda perlu memasukkan beberapa baris, gunakan Shift+Enter di antara baris, lalu kirim semua baris untuk evaluasi dengan . Masukan Konsol Debug menggunakan mode editor aktif, yang berarti bahwa masukan Konsol Debug mendukung pewarnaan sintaks, lekukan, penutupan tanda kutip otomatis, dan fitur bahasa lainnya. . Debug Console input uses the mode of the active editor, which means that the Debug Console input supports syntax coloring, indentation, auto closing of quotes, and other language features. Catatan. Anda harus berada dalam sesi debug yang sedang berjalan untuk menggunakan REPL Konsol Debug Redirect input/output ke/dari target debugMengarahkan ulang input/output khusus debugger/runtime, jadi VS Code tidak memiliki solusi bawaan yang berfungsi untuk semua debugger Berikut adalah dua pendekatan yang mungkin ingin Anda pertimbangkan
Berikut adalah contoh konfigurasi 1
Pendekatan ini mengharuskan sintaks "<" diteruskan melalui ekstensi debugger dan berakhir tanpa modifikasi di Terminal Terpadu Debug multi-targetUntuk skenario kompleks yang melibatkan lebih dari satu proses (misalnya, klien dan server), VS Code mendukung debugging multi-target Menggunakan debugging multi-target itu sederhana. setelah Anda memulai sesi debug pertama, Anda dapat meluncurkan sesi lain. Segera setelah sesi kedua aktif dan berjalan, VS Code UI beralih ke mode multi-target
Konfigurasi peluncuran gabunganCara alternatif untuk memulai beberapa sesi debug adalah dengan menggunakan konfigurasi peluncuran gabungan. Konfigurasi peluncuran gabungan mencantumkan nama dari dua atau lebih konfigurasi peluncuran yang harus diluncurkan secara paralel. Opsional 3 dapat ditentukan yang dijalankan sebelum sesi debug individual dimulai. Bendera boolean 1 mengontrol apakah penghentian satu sesi secara manual akan menghentikan semua sesi gabungan
Konfigurasi peluncuran gabungan ditampilkan di menu tarik-turun konfigurasi peluncuran Debugging jarak jauhVS Code sendiri tidak mendukung debugging jarak jauh. ini adalah fitur ekstensi debug yang Anda gunakan, dan Anda harus berkonsultasi dengan halaman ekstensi di Marketplace untuk dukungan dan detail Namun, ada satu pengecualian. Node. js debugger yang disertakan dalam VS Code mendukung debugging jarak jauh. Lihat topik untuk mempelajari cara mengonfigurasi ini Buka URI secara otomatis saat men-debug program serverMengembangkan program web biasanya memerlukan pembukaan URL tertentu di browser web untuk menekan kode server di debugger. VS Code memiliki fitur bawaan "serverReadyAction" untuk mengotomatiskan tugas ini Berikut adalah contoh dari Node.js sederhana. aplikasi js Express
Aplikasi ini pertama-tama menginstal penangan "Hello World" untuk URL "/" dan kemudian mulai mendengarkan koneksi HTTP pada port 3000. Port diumumkan di Konsol Debug, dan biasanya, pengembang sekarang akan mengetik 2 ke dalam aplikasi browser merekaFitur serverReadyAction memungkinkan untuk menambahkan properti terstruktur 0 ke konfigurasi peluncuran apa pun dan memilih "tindakan" yang akan dilakukan
Di sini properti _4 menjelaskan ekspresi reguler untuk mencocokkan string keluaran program yang mengumumkan port. Pola untuk nomor port dimasukkan ke dalam tanda kurung sehingga tersedia sebagai grup penangkap ekspresi reguler. Dalam contoh ini, kami hanya mengekstrak nomor port, tetapi juga memungkinkan untuk mengekstrak URI lengkapProperti _5 menjelaskan bagaimana nomor port diubah menjadi URI. _6 pertama digantikan oleh grup tangkapan pertama dari pola yang cocokURI yang dihasilkan kemudian dibuka di luar Kode VS ("secara eksternal") dengan aplikasi standar yang dikonfigurasi untuk skema URI Memicu Debugging melalui Edge atau ChromeAtau, _7 dapat diatur ke 8 atau 9. Dalam mode ini, properti Debuggers 0 dapat ditambahkan yang diteruskan ke sesi debug Chrome atau EdgeUntuk sedikit menyederhanakan, sebagian besar properti bersifat opsional dan kami menggunakan nilai fallback berikut
Memicu Konfigurasi Peluncuran Sewenang-wenangDalam beberapa kasus, Anda mungkin perlu mengonfigurasi opsi tambahan untuk sesi debug browser--atau menggunakan debugger yang berbeda sama sekali. Anda dapat melakukan ini dengan menyetel _7 ke Debuggers 5 dengan properti 7 disetel ke nama konfigurasi peluncuran untuk dimulai saat 4 cocokKonfigurasi peluncuran bernama harus dalam file atau folder yang sama dengan 0Di sini fitur serverReadyAction beraksi Langkah selanjutnyaUntuk mempelajari tentang Node. dukungan debug js, lihat
Untuk melihat tutorial tentang dasar-dasar Node. js debugging, lihat video ini
Untuk mempelajari tentang dukungan debug untuk bahasa pemrograman lain melalui ekstensi Kode VS
Untuk mempelajari tentang dukungan menjalankan tugas VS Code, buka
Untuk menulis ekstensi debugger Anda sendiri, kunjungi
Pertanyaan umumApa saja skenario debug yang didukung?Debug dari Node. Aplikasi berbasis js didukung di Linux, macOS, dan Windows langsung dengan VS Code. Banyak skenario lain yang didukung oleh ekstensi VS Code yang tersedia di Marketplace Saya tidak melihat konfigurasi peluncuran apa pun di tarik-turun tampilan Jalankan dan Debug. Apa yang salah?Masalah yang paling umum adalah Anda tidak menyiapkan 1 atau ada kesalahan sintaks pada file tersebut. Alternatifnya, Anda mungkin perlu membuka folder, karena debugging tanpa folder tidak mendukung konfigurasi peluncuran
Bagaimana cara membuka jendela debug JavaScript?Panel Sumber adalah tempat Anda men-debug JavaScript. . Buka DevTools dengan menekan Command+Option+I (Mac) atau Control+Shift+I (Windows, Linux). Pintasan ini membuka panel Konsol Klik tab Sumber Apakah ada cara untuk men-debug JavaScript?Tapi untungnya, semua browser modern memiliki debugger JavaScript bawaan . Debugger bawaan dapat dihidupkan dan dimatikan, memaksa kesalahan dilaporkan ke pengguna. Dengan debugger, Anda juga dapat menyetel breakpoint (tempat eksekusi kode dapat dihentikan), dan memeriksa variabel saat kode dieksekusi.
Apa cara terbaik untuk men-debug JavaScript?Alat debug JavaScript terbaik untuk tahun 2021 dan seterusnya . Alat pengembang di browser web modern. Setiap browser modern memiliki alat yang tersedia di dalamnya untuk men-debug kode. . Alat debug yang dapat diretas — debugger. . Node. . Tukang pos untuk men-debug permintaan dan tanggapan. . ESLint. . Tempat JS. . Formatter dan Validator JSON. . Webpack Bagaimana cara men-debug JavaScript di jendela Chrome?Tekan tombol fungsi F12 di browser Chrome untuk meluncurkan debugger JavaScript, lalu klik "Skrip". Pilih file JavaScript di atas dan tempatkan breakpoint ke debugger untuk kode JavaScript |