Untuk menautkan VS Code ke proses yang sudah berjalan di Mac Anda, gunakan debugger yang mendukung bahasa proses tersebut: untuk Node.js, pilih Attach to Node Process dari Command Palette; untuk C#, pilih Debug: Attach to a .NET 5+ or .NET Core process; untuk C/C++, buat konfigurasi attach menggunakan LLDB atau GDB. Jalur ini spesifik untuk runtime atau ekstensi tertentu. Tidak ada perintah tunggal di VS Code yang dapat menautkan ke semua jenis proses.
Sebelum Anda menautkan: identifikasi proses dan debugger
Pertama, identifikasi apa yang dijalankan oleh proses tersebut: Node.js, .NET, native C/C++, atau runtime lainnya. Debugger Node bawaan VS Code dan ekstensi bahasanya menyediakan fitur attach yang berbeda; proses yang muncul di Activity Monitor macOS tidak berarti setiap debugger dapat menautkannya. Anda juga memerlukan ekstensi yang sesuai untuk bahasa tersebut. Untuk native C/C++ di macOS, Microsoft mendokumentasikan dukungan LLDB atau GDB melalui ekstensi C/C++. VS Code: Debug C++
Buka proyek atau file sumber yang sesuai dengan program yang sedang berjalan. Melakukan attach menghubungkan debugger ke suatu proses; ini tidak memulai aplikasi, tidak membangun ulang (rebuild), atau menjamin bahwa breakpoint dapat dipasang. Kesesuaian kode sumber dan simbol debug yang tersedia sangat penting, terutama untuk program native dan hasil kompilasi yang dioptimalkan (optimized builds).
Menautkan ke proses Node.js yang sedang berjalan
Di VS Code, tekan ⇧⌘P untuk membuka Command Palette, jalankan Debug: Attach to Node Process, lalu pilih proses yang dituju dari Quick Pick. Pemilih tersebut mencantumkan proses kandidat dan menampilkan ID proses serta port debug-nya. VS Code mendokumentasikan jalur ini untuk proses Node yang tidak dimulai dalam mode debug maupun proses yang menggunakan opsi inspect. VS Code: Node.js debugging
Jika proses tidak tercantum, atau Anda menginginkan konfigurasi yang dapat digunakan kembali, buka atau buat .vscode/launch.json dan tambahkan konfigurasi attach. Untuk proses yang sudah berjalan tanpa mode debug, gunakan variabel pemilih ID proses:
{
"name": "Attach to Node process",
"type": "node",
"request": "attach",
"processId": "${command:PickProcess}"
}
Pilih konfigurasi ini di Run and Debug, lalu mulai proses debug dengan F5. Untuk proses Node yang sudah dimulai dengan --inspect, gunakan konfigurasi attach dengan port debug-nya; port default Node adalah 9229. Jangan menggabungkan processId dan port: VS Code menentukan port secara otomatis saat menautkan berdasarkan ID proses. Detail konfigurasi proses debug Node.js
Menautkan ke proses .NET yang sedang berjalan
Instal ekstensi Microsoft C# dan buka Command Palette dengan ⇧⌘P. Jalankan Debug: Attach to a .NET 5+ or .NET Core process, lalu pilih proses target dari daftar. Ini adalah jalur attach proses yang terdokumentasi untuk C# di VS Code; gunakan ini alih-alih menganggap pemilih proses atau bidang konfigurasi Node berlaku untuk .NET. VS Code: C# debugging
Setelah menautkan, pasang breakpoint di kode sumber yang cocok dan biarkan aplikasi mencapai kode tersebut. Jika breakpoint tetap tidak terpasang (unbound), periksa apakah proses tersebut menjalankan build yang sesuai dengan kode sumber yang Anda buka dan apakah simbol yang dapat digunakan tersedia. Pengaturan exact-source dan opsi simbol pada debugger C# dapat memengaruhi proses debug, dan proses attach tidak dapat mengubah secara retroaktif bagaimana modul yang sudah dimuat dikompilasi. Pengaturan debugger C#
Menautkan ke proses native C atau C++
Instal ekstensi Microsoft C/C++ dan gunakan konfigurasi attach di .vscode/launch.json. Konfigurasi memerlukan jalur executable agar debugger dapat memuat simbol, permintaan attach, dan ID proses. Referensi konfigurasi C/C++ mendokumentasikan ${command:pickProcess} sebagai pemilih proses default dan LLDB sebagai debugger yang tersedia di macOS. Referensi konfigurasi launch C/C++
Bentuk konfigurasi minimal untuk macOS adalah:
{
"name": "Attach to native process",
"type": "cppdbg",
"request": "attach",
"program": "${workspaceFolder}/path/to/executable",
"processId": "${command:pickProcess}",
"MIMode": "lldb"
}
Ganti path/to/executable dengan executable sebenarnya yang digunakan oleh proses yang sedang berjalan. Biarkan MIMode disetel ke lldb untuk contoh LLDB ini; GDB memiliki persyaratan pengaturan terpisah di macOS. Debugger memerlukan lokasi executable untuk memuat simbol, sehingga jalur yang ditebak atau tidak terkait dapat membuat proses debug tingkat sumber tidak dapat digunakan. Referensi konfigurasi C/C++
Jika attach gagal atau breakpoint tidak terpicu
Periksa apakah Anda telah memilih proses yang benar, ekstensi yang relevan telah diinstal, serta proses dan debugger memiliki arsitektur yang kompatibel. Di Apple silicon, ketidakcocokan arsitektur secara khusus didokumentasikan sebagai kemungkinan penyebab kesalahan attach C#. Untuk C/C++, pastikan jalur executable dan simbol yang tersedia cocok dengan build yang sedang berjalan. Jika proses tersebut milik pengguna lain atau dilindungi oleh macOS, izin sistem operasi juga dapat mencegah penautan; gunakan proses yang berwenang dan patuhi kebijakan keamanan macOS yang berlaku daripada mencoba mengabaikannya.
Untuk Node.js, gunakan pemilih proses spesifik bahasa atau konfigurasikan port inspect; konfigurasi attach generik C/C++ bukanlah pengganti. Untuk C#, gunakan perintah attach .NET. Untuk native C/C++, gunakan cppdbg dengan LLDB atau penginstalan GDB yang dikonfigurasi terpisah. Perbedaan ini membantu mempersempit langkah berikutnya saat instruksi “attach” generik tidak sesuai dengan target.
Setelah selesai, gunakan Debug: Stop untuk memutuskan sambungan. Dalam mode attach Node.js, VS Code menyatakan bahwa penghentian akan memutuskan sambungan debugger dan target akan tetap berjalan. Konfirmasikan perilaku ekstensi Anda untuk runtime lain jika menjaga proses tetap berjalan adalah hal yang penting; sesi attach dan launch tidak selalu memiliki perilaku penghentian yang sama. VS Code: Node.js debugging
Sumber
Node.js debugging in VS Code — Microsoft
Debugging — Microsoft
List of configurable options — Microsoft
Configure C/C++ debugging — Microsoft
Debug C++ in Visual Studio Code — Microsoft