Aracılığıyla paylaş


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.
    • Donanım hızlandırmayı devre dışı bırakın.
  • .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 $PATHeklediğinizden emin olun.

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ından dotnet publisholuş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ğinizden pi 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.