ARM tek kartlı bilgisayarlarda .NET uygulamalarında hata ayıklama
Raspberry Pi gibi ARM tabanlı SBC'lerde çalışan .NET uygulamalarında hata ayıklamak benzersiz bir zorluk sunar. İsterseniz, cihaza Visual Studio Code ve .NET SDK'sını yükleyebilir ve yerel olarak geliştirebilirsiniz. Ancak cihazın performansı, yerel olarak kodlama ve hata ayıklamanın ideal olmamasıdır. Ayrıca, C# için Visual Studio Code uzantısı 32 bit ARM işletim sistemleriyle uyumlu değildir. Sonuç olarak, ARM cihazlarında Visual Studio Code'da IntelliSense ve hata ayıklama gibi işlevler yalnızca 64 bit sistemlerde desteklenir.
Bu nedenlerden dolayı, uygulamanızı bir geliştirme bilgisayarında geliştirmeniz ve ardından uygulamayı uzaktan hata ayıklama için cihaza dağıtmanız kesinlikle önerilir. Cihazda yerel olarak geliştirmek ve hata ayıklamak istiyorsanız, aşağıdakiler gereklidir:
- Raspberry Pi OS (64 bit) gibi masaüstü ortamına sahip 64 bit işletim sistemi.
- C# uzantısına sahip Visual Studio Code.
- .NET SDK 6.0 veya üzeri.
- Çerçeveye bağımlı dağıtımda olduğu gibi dotnet-install betiğini kullanarak yükleyin. Bir
DOTNET_ROOT
ortam değişkeni eklediğinizden ve .dotnet dizinini öğesine$PATH
eklediğinizden emin olun.
- Çerçeveye bağımlı dağıtımda olduğu gibi dotnet-install betiğini kullanarak yükleyin. Bir
Bu makalenin geri kalanında, bir geliştirme bilgisayarından uzaktan tek kartlı bilgisayarlarda .NET uygulamalarında hata ayıklama açıklanmaktadır.
Önemli
Bu yazıdan itibaren, ortamlarda .NET 7 uygulamalarında linux-arm
uzaktan hata ayıklama güvenilir değildir ve işlemin erken çıkmalarına neden olabilir. Bu sorun araştırılıyor. Hedeflenen .NET 6 uygulamaları ve hedeflenen linux-arm
linux-arm64
.NET 7 uygulamaları etkilenmez.
Visual Studio Code'dan hata ayıklama (platformlar arası)
Visual Studio Code'dan tek kartlı bilgisayarlarda .NET'te hata ayıklamak için SBC'de ve projenin launch.json dosyasında yapılandırma adımları gerekir.
SBC'de SSH'yi etkinleştirme
Uzaktan hata ayıklama için SSH gereklidir. Raspberry Pi'de SSH'yi etkinleştirmek için Raspberry Pi belgelerinde SSH'yi etkinleştirme bölümüne bakın. Parolasız SSH yapılandırdığınızdan emin olun.
Önemli
OpenSSH komut satırında parola geçirmeyi desteklemediğinden bu örnek cihazınızda parolasız SSH yapılandırmanızı gerektirir. Parola kullanmanız gerekiyorsa, ssh için Plink aracının yerine kullanmayı göz önünde bulundurun.
SBC'ye Visual Studio Uzaktan Hata Ayıklayıcı yükleme
SBC'deki bir Bash konsolunda (yerel oturumda veya SSH aracılığıyla), aşağıdaki komutu çalıştırın. Bu komut cihaza Visual Studio Uzaktan Hata Ayıklayıcı indirir ve yükler:
curl -sSL https://aka.ms/getvsdbgsh | /bin/sh /dev/stdin -v latest -l ~/vsdbg
Visual Studio Code'da launch.json ayarlama
Geliştirme bilgisayarında, projenin launch.json bir başlatma yapılandırması ekleyin. Projede launch.json dosyası yoksa, Çalıştır sekmesine geçip launch.json dosyası oluştur'u ve iletişim kutusunda .NET veya .NET Core'u seçerek bir dosya ekleyin.
launch.json'deki yeni yapılandırma aşağıdakilerden birine benzer olmalıdır:
"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"
}
},
Aşağıdakilere dikkat edin:
program
tarafındandotnet publish
oluşturulan yürütülebilir dosyadır.cwd
, cihazda uygulamayı başlatırken kullanılacak çalışma dizinidir.pipeProgram
, yerel makinedeki bir SSH istemcisinin yoludur.pipeArgs
SSH istemcisine geçirilecek parametrelerdir. parola parametresini ve kullanıcı biçimini<user>@<hostname>
belirttiğinizdenpi
emin olun.
Uygulamayı dağıtma
Uygulamayı ARM tek kartlı bilgisayarlara .NET uygulamaları dağıtma bölümünde açıklandığı gibi dağıtın. Dağıtım yolunun launch.json yapılandırmasında cwd
parametresinde belirtilen yol ile aynı olduğundan emin olun.
Hata ayıklayıcıyı başlatma
Visual Studio Code'da, Çalıştır ve Hata Ayıkla sekmesinde, launch.json eklediğiniz yapılandırmayı seçin ve Hata Ayıklamayı Başlat'ı seçin. Uygulama cihazda başlatılır. Hata ayıklayıcısı kesme noktaları ayarlamak, yerel ayarları incelemek ve daha fazlasını yapmak için kullanılabilir.
Windows üzerinde Visual Studio'dan hata ayıklama
Visual Studio, SSH aracılığıyla uzak cihazlarda .NET uygulamalarında hata ayıklayabilir. Cihazda özel yapılandırma gerekmez. .NET'te uzaktan hata ayıklamak için Visual Studio kullanma hakkında ayrıntılı bilgi için bkz . SSH kullanarak Linux'ta .NET'te uzaktan hata ayıklama.
Çerçeveye bağımlı bir dağıtımda dotnet
hata ayıklarken işlemi seçtiğinizden emin olun. Aksi takdirde işlem, uygulamanın yürütülebilir dosyasıyla aynı şekilde adlandırılır.