在windows通过visual studio远程调试linux mono程序

2022-12-11,,,,

本文参考文章 https://github.com/techl/MonoRemoteDebugger

1、通过连接https://github.com/techl/MonoRemoteDebugger下载MonoRemoteDebug,并在vs2015中打开

2、重新生成解决方案,期间可能出现nuget包丢失,请通过nuget修复所有引用,确保所有项目编译成功

3、打开项目根目录,依次打开目录Output/Debug/Extension,然后找到MonoRemoteDebugger.VSExtension这个文件,双击打开,然后安装

4、安装完成后,重启所有vs,查看菜单栏是否有MonoRemoteDebugger,如果没有,则安装失败

5、准备linux安装 mono远程调试的服务器端,执行以下命令

cd ~
wget https://github.com/techl/MonoRemoteDebugger/releases/download/v1.0.10/MonoRemoteDebugger.Server.zip
unzip -d MonoRemoteDebugger.Server MonoRemoteDebugger.Server.zip
cd MonoRemoteDebugger.Server
mono MonoRemoteDebugger.Server.exe

6、新建控制台程序,加入测试代码,在开始位置加入断点,准备远程调试

7、编译完成后,点击菜单栏的MonoRemoteDebugger->Debug with mono (remote) 将弹出以下菜单

  1)在Remote-IP输入你linux系统的IP

  2)点击Connect开始调试

8、程序开始执行,并命中断点

9、按F10之后,程序执行到Console.ReadLine()这一行,继续按F10,程序阻塞,回到linux端,看到执行记录

10、看到程序输出当前ip,其实这个程序是在linux下运行的,已经不是在vs编译代码的机器上运行了

11、每次调试,调试插件都弹出一个连接服务器的窗口,我对这个插件源码进行了调整

  把MonoRemoteDebugger.VSExtension.Views.ServersFound窗体的load事件中增加了如下代码

private void ServersFound_Loaded(object sender, RoutedEventArgs e)
        {
            string path = "c://MonoRemoteDebugger.DefaultIP.txt";
            if (File.Exists(path))
            {
                string value = File.ReadAllText(path);
                if (!string.IsNullOrEmpty(value))
                {
                    this.TxtIP.Text = value;
                    Select(this.BtnConnect, e);
                }
            }
        }

这样,我在c盘下新建MonoRemoteDebugger.DefaultIP.txt,里面写上服务器的ip,就不用每次调试都弹出这个窗口了,调试的时候,相对方便一点

windows通过visual studio远程调试linux mono程序的相关教程结束。

《在windows通过visual studio远程调试linux mono程序.doc》

下载本文的Word格式文档,以方便收藏与打印。