Bagikan melalui


Men-debug aplikasi .NET di komputer single-board ARM

Debugging aplikasi .NET yang dijalankan pada SBC berbasis ARM seperti Raspberry Pi menghadirkan tantangan unik. Jika diinginkan, Anda dapat menginstal Visual Studio Code dan SDK .NET di perangkat dan mengembangkan secara lokal. Namun, kinerja perangkat sedemikian rupa sehingga pemrograman 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 membangun aplikasi di komputer pembangunan, lalu menyebarkan aplikasi ke perangkat untuk debugging 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.

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 pemecahan masalah 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 Visual Studio Remote Debugger 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 pemrograman, tambahkan konfigurasi peluncuran ke launch.json proyek. Jika proyek tidak memiliki file launch.json, tambahkan dengan beralih ke tab Run, memilih buat file launch.json, dan memilih .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 Deploy .NET apps to ARM single-board computers. Pastikan jalur penyebaran adalah jalur yang sama yang ditentukan dalam cwd parameter dalam konfigurasi launch.json .

Luncurkan debugger

Di Visual Studio Code, pada tab Run dan Debug, pilih konfigurasi yang Anda tambahkan ke launch.json dan pilih Mulai Debugging. Aplikasi ini diluncurkan pada perangkat. Debugger dapat digunakan untuk mengatur breakpoint, memeriksa variabel 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 mengenai menggunakan Visual Studio untuk melakukan debug .NET dari jarak jauh, silakan lihat Remote debug .NET di Linux menggunakan SSH.

Pastikan untuk memilih proses dotnet jika Anda sedang melakukan debug penyebaran yang bergantung pada framework. Jika tidak, proses akan diberi nama yang sama dengan eksekutabel aplikasi.