Bagikan melalui


Debug .NET Core di Linux menggunakan SSH dengan melampirkan ke proses

Mulai dari Visual Studio 2017, Anda dapat melampirkan ke proses .NET Core dan .NET 5+ yang berjalan pada penyebaran Linux lokal atau jarak jauh melalui Secure Shell (SSH). Artikel ini menjelaskan cara melakukan pengaturan debugging dan cara melakukan debugging. Untuk skenario debugging menggunakan kontainer Docker, sebagai gantinya lihat Menghubungkan ke proses yang berjalan pada kontainer Docker dan artikel tentang alat kontainer. Untuk melakukan debug Linux di WSL 2 menggunakan Visual Studio (tanpa melampirkan ke proses), lihat Debug .NET Core Apps di WSL 2 dengan Visual Studio.

Nota

Untuk men-debug Linux yang berjalan di Azure Kubernetes Service (AKS), Bridge ke Kubernetes direkomendasikan alih-alih melampirkan ke proses.

Prasyarat

  • Di server Linux, Anda perlu menginstal server SSH, membuka zip dan menginstal dengan curl atau wget. Misalnya, di Ubuntu Anda dapat melakukannya dengan menjalankan:

    sudo apt-get install openssh-server unzip curl
    

    SFTP harus diaktifkan serta SSH. Sebagian besar distribusi SSH menginstal dan mengaktifkan SFTP secara default, tetapi itu tidak selalu terjadi.

  • Di server Linux, instal runtime .NET di Linux, dan temukan halaman yang cocok dengan distribusi Linux Anda (seperti Ubuntu). .NET SDK tidak diperlukan.

    Untuk memastikan layanan debugging .NET yang diperlukan tersedia untuk debugging, hindari menerbitkan aplikasi sebagai executable file tunggal.

  • Untuk instruksi ASP.NET Core yang komprehensif, lihat Host ASP.NET Core di Linux dengan Nginx dan Host ASP.NET Core di Linux dengan Apache.

Menyiapkan aplikasi Anda untuk debugging

Pertimbangkan untuk menggunakan konfigurasi Debug saat Anda membuat aplikasi. Lebih sulit untuk men-debug kode yang dikompilasi ritel (konfigurasi Rilis) daripada kode yang dikompilasi debug. Jika Anda perlu menggunakan konfigurasi Rilis, pertama-tama nonaktifkan fitur Just My Code. Buka panelOpsi> dan perluas bagianUmum>>. Kosongkan kotak centang Aktifkan Hanya Kode Saya .

Pertimbangkan untuk menggunakan konfigurasi Debug saat Anda membuat aplikasi. Lebih sulit untuk men-debug kode yang dikompilasi ritel (konfigurasi Rilis) daripada kode yang dikompilasi debug. Jika Anda perlu menggunakan konfigurasi Rilis, pertama-tama nonaktifkan fitur Just My Code. Buka dialogOpsi> dan perluas bagianUmum>. Kosongkan kotak centang Aktifkan Hanya Kode Saya .

Pastikan proyek Anda dikonfigurasi untuk menghasilkan PDB portabel (yang merupakan pengaturan default), dan pastikan PDB berada di lokasi yang sama dengan DLL. Untuk mengonfigurasi ini di Visual Studio, klik kanan proyek, lalu pilih properti>simbol Debug>.

Membangun dan menyebarkan aplikasi

Anda dapat menggunakan beberapa metode untuk menyebarkan aplikasi sebelum memulai debugging. Misalnya, Anda dapat:

  • Salin sumber ke komputer target dan buat dengan dotnet build pada komputer Linux.

  • Buat aplikasi di Windows, lalu transfer artefak build ke komputer Linux. Artefak hasil kompilasi terdiri dari aplikasi itu sendiri, PDB portabel, pustaka runtime apa pun yang mungkin bergantung padanya, dan file .deps.json.

Ketika aplikasi disebarkan, jalankan aplikasi tersebut.

Melampirkan debugger

Saat aplikasi berjalan di komputer Linux, Anda siap untuk melampirkan debugger.

  1. Di Visual Studio, pilih Lampirkan Debug>ke Proses....

  2. Di daftar Tipe Koneksi , pilih SSH.

  3. Ubah Target Koneksi ke alamat IP atau nama host komputer target.

    Jika Anda belum memberikan kredensial, Anda akan diminta untuk memasukkan kata sandi dan/atau file kunci privat. Untuk informasi selengkapnya tentang menggunakan file kunci privat, lihat Menyiapkan koneksi jarak jauh.

    Tidak ada persyaratan port untuk dikonfigurasi, kecuali port tempat server SSH berjalan.

  4. Temukan proses yang ingin Anda debug.

    Kode Anda berjalan dalam sebuah nama proses unik atau dalam proses bernama dotnet. Untuk menemukan proses yang Anda minati, periksa kolom Judul , yang memperlihatkan argumen baris perintah untuk proses tersebut.

    Dalam contoh berikut, Anda akan melihat daftar proses dari komputer Linux jarak jauh melalui transportasi SSH yang ditampilkan dalam kotak dialog Lampirkan ke Proses .

    Cuplikan layar dari proses Linux yang dihubungkan.

  5. Pilih Lampirkan.

    Dalam dialog yang muncul, pilih jenis kode yang ingin Anda debug. Pilih Terkelola (.NET Core untuk Unix).

  6. Gunakan fitur debugging Visual Studio untuk melakukan debugging aplikasi.

    Dalam contoh berikut, Anda akan melihat debugger Visual Studio berhenti pada titik henti dalam kode yang berjalan di komputer Linux jarak jauh.

    Cuplikan layar Tekan titik henti.