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 menyiapkan penelusuran kesalahan dan cara men-debug. Untuk skenario penelusuran kesalahan menggunakan kontainer Docker, lihat Melampirkan ke proses yang berjalan di kontainer Docker dan artikel alat kontainer sebagai gantinya. Untuk men-debug Linux di WSL 2 dari Visual Studio (tanpa ada lampiran ke proses), lihat Men-debug Aplikasi .NET Core di WSL 2 dengan Visual Studio.

Catatan

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 tidak selalu demikian.

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

  • Untuk petunjuk lengkap ASP.NET Core, lihat Host ASP.NET Core di Linux dengan Nginx dan Host ASP.NET Core di Linux dengan Apache.

Menyiapkan aplikasi Anda untuk penelusuran kesalahan

Untuk menyiapkan aplikasi Anda untuk penelusuran kesalahan:

  • Pertimbangkan untuk menggunakan konfigurasi Debug saat Anda membangun aplikasi. Jauh lebih sulit untuk men-debug kode yang dikompilasi ritel (konfigurasi Rilis) daripada kode yang dikompilasi debug. Jika Anda perlu menggunakan konfigurasi Rilis, nonaktifkan Just My Code terlebih dahulu. Untuk menonaktifkan pengaturan ini, pilih Alat>Opsi>Penelusuran Kesalahan, lalu batalkan pilihan Aktifkan Just My Code.
  • 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 Umum.>
  • 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>Build>Tingkat Lanjut>Informasi Penelusuran Kesalahan.

Membuat dan menggunakan aplikasi

Anda dapat menggunakan beberapa metode untuk menyebarkan aplikasi sebelum penelusuran kesalahan. Misalnya, Anda dapat:

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

  • Build aplikasi di Windows, lalu transfer artefak build ke komputer Linux. (Artefak build terdiri dari aplikasi itu sendiri, PDB portabel, semua pustaka runtime yang mungkin bergantung padanya, dan file .deps.json.)

Saat aplikasi disebarkan, mulai aplikasi.

Melampirkan debugger

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

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

  2. Dalam daftar Jenis Koneksi, pilih SSH.

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

    Jika Anda belum memberikan mandat, Anda akan diminta untuk memasukkan kata sandi dan/atau file kunci privat.

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

  4. Temukan proses yang ingin Anda debug.

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

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

    Attach to Linux process

  5. Pilih Lampirkan.

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

  7. Gunakan fitur penelusuran kesalahan Visual Studio untuk men-debug aplikasi.

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

    Hit a breakpoint