Men-debug aplikasi .NET di komputer papan tunggal ARM

Men-debug aplikasi .NET yang berjalan pada SBC berbasis ARM seperti Raspberry Pi menghadirkan tantangan unik. Jika diinginkan, Anda dapat menginstal Visual Studio Code dan .NET SDK di perangkat dan mengembangkan secara lokal. Namun, performa perangkat sia-sia sehingga pengkodian dan debugging secara lokal tidak ideal. Selain itu, ekstensi Visual Studio Code untuk C# tidak kompatibel dengan sistem operasi ARM 32-bit. Akibatnya, fungsionalitas seperti IntelliSense dan penelusuran kesalahan di Visual Studio Code pada perangkat ARM hanya didukung dalam sistem 64-bit.

Untuk alasan ini, sangat disarankan agar Anda mengembangkan aplikasi di komputer pengembangan lalu menyebarkan aplikasi ke perangkat untuk penelusuran kesalahan jarak jauh. Jika Anda ingin mengembangkan dan men-debug secara lokal di perangkat, berikut ini diperlukan:

Sisa artikel ini menjelaskan cara men-debug aplikasi .NET di komputer papan tunggal dari jarak jauh dari komputer pengembangan.

Penting

Pada penulisan ini, penelusuran kesalahan aplikasi .NET 7 dari jarak jauh di lingkungan tidak dapat diandalkan linux-arm dan dapat menyebabkan proses keluar sebelum waktunya. Masalah ini sedang diselidiki. Aplikasi .NET 6 yang menargetkan linux-arm dan aplikasi .NET 7 yang menargetkan linux-arm64 tidak terpengaruh.

Debug dari Visual Studio Code (lintas platform)

Penelusuran kesalahan .NET pada komputer papan tunggal dari Visual Studio Code memerlukan langkah-langkah konfigurasi pada SBC dan dalam file launch.json proyek.

Mengaktifkan SSH pada SBC

SSH diperlukan untuk penelusuran kesalahan jarak jauh. Untuk mengaktifkan SSH pada Raspberry Pi, lihat Mengaktifkan SSH dalam dokumentasi Raspberry Pi. Pastikan Anda telah mengonfigurasi SSH tanpa kata sandi.

Penting

Contoh ini mengharuskan Anda untuk mengonfigurasi SSH tanpa kata sandi di perangkat Anda, karena OpenSSH tidak mendukung meneruskan kata sandi pada baris perintah. Jika Anda perlu menggunakan kata sandi, pertimbangkan untuk mengganti alat Plink untuk ssh.

Menginstal Debugger Jarak Jauh Visual Studio di SBC

Dalam konsol Bash di SBC (baik dalam sesi lokal atau melalui SSH), jalankan perintah berikut. Perintah ini mengunduh dan menginstal Visual Studio Remote Debugger pada perangkat:

curl -sSL https://aka.ms/getvsdbgsh | /bin/sh /dev/stdin -v latest -l ~/vsdbg

Menyiapkan launch.json di Visual Studio Code

Pada komputer pengembangan, tambahkan konfigurasi peluncuran ke launch.json proyek. Jika proyek tidak memiliki file launch.json , tambahkan dengan beralih ke tab Jalankan , pilih buat file launch.json, dan pilih .NET atau .NET Core dalam dialog.

Konfigurasi baru di launch.json akan terlihat mirip dengan salah satu hal berikut:

"configurations": [
    {
        "name": ".NET Remote Launch - Self-contained",
        "type": "coreclr",
        "request": "launch",
        "program": "~/sample/sample",
        "args": [],
        "cwd": "~/sample",
        "stopAtEntry": false,
        "console": "internalConsole",
        "pipeTransport": {
            "pipeCwd": "${workspaceRoot}",
            "pipeProgram": "ssh",
            "pipeArgs": [
                "pi@raspberrypi"
            ],
            "debuggerPath": "~/vsdbg/vsdbg"
        }
    },

Perhatikan hal berikut:

  • program adalah file yang dapat dieksekusi yang dibuat oleh dotnet publish.
  • cwd adalah direktori kerja yang digunakan saat meluncurkan aplikasi di perangkat.
  • pipeProgram adalah jalur ke klien SSH di komputer lokal.
  • pipeArgs adalah parameter yang akan diteruskan ke klien SSH. Pastikan untuk menentukan parameter kata sandi, serta pi pengguna dalam format <user>@<hostname>.

Menyebarkan aplikasi

Sebarkan aplikasi seperti yang dijelaskan dalam Menyebarkan aplikasi .NET ke komputer papan tunggal ARM. Pastikan jalur penyebaran adalah jalur yang sama yang ditentukan dalam cwd parameter dalam konfigurasi launch.json .

Meluncurkan debugger

Di Visual Studio Code, pada tab Jalankan dan Debug , pilih konfigurasi yang Anda tambahkan ke launch.json dan pilih Mulai Penelusuran Kesalahan. Aplikasi ini diluncurkan pada perangkat. Debugger dapat digunakan untuk mengatur titik henti, memeriksa lokal, dan banyak lagi.

Debug dari Visual Studio di Windows

Visual Studio dapat men-debug aplikasi .NET di perangkat jarak jauh melalui SSH. Tidak diperlukan konfigurasi khusus pada perangkat. Untuk detail tentang menggunakan Visual Studio untuk men-debug .NET dari jarak jauh, lihat Debug jarak jauh .NET di Linux menggunakan SSH.

Pastikan untuk memilih dotnet proses jika Anda men-debug penyebaran yang bergantung pada kerangka kerja. Jika tidak, proses akan diberi nama yang sama dengan aplikasi yang dapat dieksekusi.