本文参考文章 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程序的更多相关文章

  1. 通过Windows Visual Studio远程调试WSL2中的.NET Core Linux应用程序

    最近两天在Linux中调试.NET Core应用程序,同时我发现在Linux中调试.NET Core应用程序并不容易.一直习惯在Visual Studio中进行编码和调试.现在我想的是可以简单快速的测 ...

  2. Visual Studio远程调试监视器(MSVSMON.EXE)的32位版本不能用于调试64位进程或64位转储

    在VS2013中调试Silverlight项目时,提示:无法附加.Visual Studio远程调试监视器(MSVSMON.EXE)的32位版本不能用于调试64位进程或64位转储.请改用64位版本. ...

  3. CLR调试报错“Visual Studio远程调试监视器 (MSVSMON.EXE) 的 64 位版本无法调试 32 位进程或 32 位转储。请改用 32 位版本”的解决

    Win7 64位电脑上进行visual studio的数据库项目的CLR存储过程进行调试时,报错: ---------------------------Microsoft Visual Studio ...

  4. 在Chrome+Visual Studio中调试asp.net程序很慢的问题(Firefox也有类似问题)

    在Chrome+Visual Studio中调试asp.net程序很慢的问题(Firefox也有类似问题) 今天开始起在Chrome中调试,发现问题主要出在菜单栏(layout文件)中,google了 ...

  5. Visual Studio远程调试

    Visual Studio支持调试远程机器上的程序,经过简单设置后,就像调试本地代码一样方便. 第一步:将vs工具里的Remote Debugger文件夹拷贝到目标机器.大致的目录应该是:D:\Pro ...

  6. visual studio远程调试 remote debugger

    下载远程debug工具: https://docs.microsoft.com/zh-cn/visualstudio/debugger/remote-debugging?view=vs-2015 或者 ...

  7. 无法在web服务器上启动调试。Microsoft Visual Studio 远程调试监视器(MSVSMON.EXE)似乎没有在远程计算机上运行,VS2012调试错误

    1.重启(无用) 2.关闭防火墙(无用) 3.开启文件与打印机共享(无用) 4.无远程调试权限,改为本地调试.或者是IIS中此项目没有启动.或者没有在IIS中新建此项目.

  8. VS本地调试 Visual Studio远程调试监视器(MSVSMON.EXE)的32位版本不能用于调试64位进程或64位转储

    vs2017 调试一致都没啥问题,今天莫名报这个错误,感觉好奇怪,网上搜索了半天也没解决,最后看着错误信息感觉很诡异,我本地调试你给我启动远程调试监测器干嘛,localhost也访问不了,ping了一 ...

  9. 使用Windows上的Eclipse 远程调试 linux下的Tomcat

    1:修改Linux上Tomcat的catalina.sh,第一行添加declare -x CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_sock ...

随机推荐

  1. 酷炫放大镜canvas实现

    主要采用了canvas内渲染canvas的技术,还有利用比例来放大图片 比例:放大镜宽度/画布宽度=原图宽度/渲染图宽度 <!DOCTYPE html><html lang=&quo ...

  2. MSSQL 死锁查询

    SELECT SYS.DM_EXEC_REQUESTS.SESSION_ID,TEXT AS '执行SQL',CLIENT_NET_ADDRESS AS '请求IP',SYS.DM_EXEC_CONN ...

  3. iOS UIView 动画浅谈

    UIView 等会效果简单实现,哪一个登录页面的demo来举例子吧. + (void)animateWithDuration:(NSTimeInterval)duration animations:( ...

  4. js中的数据类型

    JS中的数据类型: ——数字  (number)NaN ——字符串(string) ——布尔  (boolean)——函数  (function)     也是对象的一种 ——对象  (object) ...

  5. C#搜索指定文件夹内的符合要求的文件

    下面的列子是文件的模糊查找, 具体功能是:选定文件夹,搜索所有文件命中包含“_bui”字样的shp图层(后缀为.shp)并将信息显示在ListView中.实际应用中可随便修改. 这里采用递归方法进行深 ...

  6. STL学习之vector

    vector是一个线性顺序结构.相当于数组,但其大小可以不预先指定,并且自动扩展.它可以像指针一样被操作,由于它的特性我们完全可以将vector看做动态数组. 特点: 1.指定一块如同数组一样的连续存 ...

  7. 【RabbitMQ】HelloWorld

    初识RabbitMQ RabbitMQ是一个消息代理人.它的主要目的很简单:接受并推送消息.我们可以将它理解为一个邮局:当你邮寄一封邮件到邮箱里,可以非常确定邮递员会将它送到收件人手中.打这种比方来将 ...

  8. 更换Mac记录

    1. 重装Mac (1)格式化硬盘 (2)重装系统 (3)修改各种配置:电脑名.键盘等 2. 安装必要软件 (1)QQ.微信.网易云音乐等 (2)火狐.谷歌.SourceTree等 (3)安装Git ...

  9. Update Request

    public function update(UpdateAppointmentRequest $request) { try { $data = array_filter($request-> ...

  10. [UVa 1619]Feel Good

    #include <bits/stdc++.h> using namespace std; const int maxn = 1000010; struct node { int num; ...