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:
- OS 64-bit dengan lingkungan desktop, seperti Raspberry Pi OS (64-bit).
- Visual Studio Code dengan ekstensi C#.
- Nonaktifkan akselerasi perangkat keras.
- .NET SDK 6.0 atau yang lebih baru.
- Instal menggunakan skrip dotnet-install seperti dalam penyebaran yang bergantung pada kerangka kerja. Pastikan untuk menambahkan
DOTNET_ROOT
variabel lingkungan dan menambahkan direktori .dotnet ke$PATH
.
- Instal menggunakan skrip dotnet-install seperti dalam penyebaran yang bergantung pada kerangka kerja. Pastikan untuk menambahkan
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 olehdotnet 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, sertapi
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.