树莓派 Linux VS code 远程断点调试 .net 6.0 保姆级教程

树莓派 Linux VS code 远程断点调试 .net 6.0 保姆级教程


入手Linux有一段时间了,之前会写点C#,做的大多也是单片机的开发,对于能够断点调试那是成为了代码开发的一个执念,加上微软也在大力推广.net,如何利用X86的高性能编译来断点调试linux设备上的.net程序,就困扰了一段时间,通过看国内外大佬的教程,这里总结了以下一个不算非常严谨的教程,希望能够帮助大家解决一点疑惑。

安装树莓派系统或者其他系统

这里我们主要以树莓派系统为例子,其他的Linux按理说是可以完全复制的。
官方Raspbian

32位下载地址
64位下载地址

安装完系统之后开启SSH,方便后面进行调试。
树莓派开启ssh教程
感谢这位大佬出的教程。

树莓派 net 6.0 及 调试器 安装

!!!这里还是建议安装32位系统64位系统也是可以安装的。

这里首先需要换个树莓派的源加快下载速度
点击->>树莓派换源加快下载速度
这里参考夸克之书的教程 https://www.quarkbook.com/?p=683 感谢大佬的教程
安装.Net Core依赖

$ sudo apt install libunwind8 libunwind8-dev gettext libicu-dev liblttng-ust-dev libcurl4 libcurl4-openssl-dev libssl-dev uuid-dev unzip libgdiplus libkrb5-3

下载 net 6.0 SDK
可自行下载版本 https://dotnet.microsoft.com/download/dotnet 替换wget 后面地址就可以了

64位系统

$ wget https://download.visualstudio.microsoft.com/download/pr/084d5037-7dee-4654-b91a-fe303fa62d74/553744c6fcf2ed1128e40fa9f6cd4516/dotnet-sdk-6.0.100-preview.7.21379.14-linux-arm64.tar.gz

32位系统

$ wget https://download.visualstudio.microsoft.com/download/pr/501903b0-5e47-4b76-a965-fabafcd95ff5/d6f197c99957b356ee8f0c6e2304ff09/dotnet-sdk-6.0.100-preview.7.21379.14-linux-arm.tar.gz

创建dotnet文件夹

$ mkdir dotnet

移动并解压

$ mv dotnet-sdk-6.0.100-preview.7.21379.14-linux-arm64.tar.gz dotnet
$ cd dotnet/
$ tar xvf dotnet-sdk-6.0.100-preview.7.21379.14-linux-arm64.tar.gz

移动dotnet到user/local下面

$ cd ..
$ sudo mv dotnet /usr/local/
$ cd /usr/local/

创建软连接

$ sudo ln -s /usr/local/dotnet/dotnet /usr/local/bin

测试

$ dotnet --version

打印 net 版本表示安装成功

为 linux-arm(目标计算机)安装调试器

$ curl -sSL https://aka.ms/getvsdbgsh | bash /dev/stdin -r linux-arm -v latest -l ~/vsdbg

显示如下信息表示安装成功

Info: Last installed version of vsdbg is '17.0.10712.2'
Info: VsDbg is up-to-date
Info: Using vsdbg version '17.0.10712.2'
Using arguments
    Version                    : 'latest'
    Location                   : '/home/pi/vsdbg'
    SkipDownloads              : 'true'
    LaunchVsDbgAfter           : 'false'
    RemoveExistingOnUpgrade    : 'false'
Info: Skipping downloads

接着开启树莓派共享文件夹,也是这次能够实现高性能调试的关键之一。
安装 Samba

sudo apt-get install samba samba-common-bin

在树莓派桌面创建文件夹名为mytest
配置 Samba

sudo nano /etc/samba/smb.conf

在文件末尾加上如下内容,其中/home/pi/Desktop/mytest 为共享文件夹目录

[public]
   comment = public storage
   path = /home/pi/Desktop/mytest
   valid users = pi
   read only = no
   create mask = 0777
   directory mask = 0777
   guest ok = no
   browseable = yes

其中 valid users 即 pi 为有效用户,还需要添加其到 Samba 中

sudo smbpasswd -a pi

重启 samba 以生效配置

sudo samba restart

Windows上映射这个文件夹
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
至此树莓派设置完成

windows软件安装

windows上同样安装(点击即可下载,安装最好都是默认安装,不要改安装位置,熟悉远离后可自行修改)
->>net 6.0
->>VS code
->>pytty
->>git
PuTTY需要设置免输密码自动登录Linux
下面教程中需要在/home/pi 下新建.ssh文件夹

$ cd /home/pi
$ mkdir .ssh

同样感谢这位大佬的教程,->>具体教程这里给出链接

打开创建的共享盘
在这里插入图片描述
创建文件夹 vsnet
在这里插入图片描述

进入vsnet文件夹,在空白的地方按住shift 点击右键,选择 “在此处打开 Powershell 窗口(s)”
输入命令

dotnet new console -n vsnet

打开VS code,选择文件,打开文件夹,选择共享盘根目录下的vsnet文件夹。
在这里插入图片描述
这里需要安装一个C#的扩展
在这里插入图片描述
打开这个文件,按F5,会提示创建相关文件
在这里插入图片描述
选择.NET Core
在这里插入图片描述
打开launch.json,这里需要做一些配置,图下给出的代码,直接复制过去。
在这里插入图片描述

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": ".NET Core Launch (console)",
            "type": "coreclr",
            "request": "launch",
            "preLaunchTask": "build",
            "program": "/home/pi/Desktop/mytest/vsnet/vsnet/bin/Debug/net6.0/vsnet.dll",
            "args": [],
            "cwd": "/home/pi/Desktop/mytest/vsnet/vsnet/bin/Debug/net6.0",
            "stopAtEntry": false,
            "console": "internalConsole",
            "pipeTransport": {
                "pipeCwd": "${workspaceFolder}",
                "pipeProgram": "c:\\Program Files\\PuTTY\\plink.exe",
                "pipeArgs": [
                    "-i",
                    "c:\\Users\\zf\\my001.ppk",
                    "pi@192.168.1.41"
                ],
                "debuggerPath": "/home/pi/vsdbg/vsdbg"
            }
        }

    ]            
}

至此按下F5 即可调用高性能的windows电脑编译程序,并可以断点调试树莓派上的.net 程序。

运用共享文件夹的目的是为了省略从电脑拷贝文件到树莓派上的这一过程。
这里贴上GitHub上的说明 https://github.com/OmniSharp/omnisharp-vscode/wiki/Remote-Debugging-On-Linux-Arm
如有疏漏之处,可留言提出。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值