在windows通过visual studio远程调试linux mono程序
本文参考文章 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远程调试WSL2中的.NET Core Linux应用程序
最近两天在Linux中调试.NET Core应用程序,同时我发现在Linux中调试.NET Core应用程序并不容易.一直习惯在Visual Studio中进行编码和调试.现在我想的是可以简单快速的测 ...
- Visual Studio远程调试监视器(MSVSMON.EXE)的32位版本不能用于调试64位进程或64位转储
在VS2013中调试Silverlight项目时,提示:无法附加.Visual Studio远程调试监视器(MSVSMON.EXE)的32位版本不能用于调试64位进程或64位转储.请改用64位版本. ...
- CLR调试报错“Visual Studio远程调试监视器 (MSVSMON.EXE) 的 64 位版本无法调试 32 位进程或 32 位转储。请改用 32 位版本”的解决
Win7 64位电脑上进行visual studio的数据库项目的CLR存储过程进行调试时,报错: ---------------------------Microsoft Visual Studio ...
- 在Chrome+Visual Studio中调试asp.net程序很慢的问题(Firefox也有类似问题)
在Chrome+Visual Studio中调试asp.net程序很慢的问题(Firefox也有类似问题) 今天开始起在Chrome中调试,发现问题主要出在菜单栏(layout文件)中,google了 ...
- Visual Studio远程调试
Visual Studio支持调试远程机器上的程序,经过简单设置后,就像调试本地代码一样方便. 第一步:将vs工具里的Remote Debugger文件夹拷贝到目标机器.大致的目录应该是:D:\Pro ...
- visual studio远程调试 remote debugger
下载远程debug工具: https://docs.microsoft.com/zh-cn/visualstudio/debugger/remote-debugging?view=vs-2015 或者 ...
- 无法在web服务器上启动调试。Microsoft Visual Studio 远程调试监视器(MSVSMON.EXE)似乎没有在远程计算机上运行,VS2012调试错误
1.重启(无用) 2.关闭防火墙(无用) 3.开启文件与打印机共享(无用) 4.无远程调试权限,改为本地调试.或者是IIS中此项目没有启动.或者没有在IIS中新建此项目.
- VS本地调试 Visual Studio远程调试监视器(MSVSMON.EXE)的32位版本不能用于调试64位进程或64位转储
vs2017 调试一致都没啥问题,今天莫名报这个错误,感觉好奇怪,网上搜索了半天也没解决,最后看着错误信息感觉很诡异,我本地调试你给我启动远程调试监测器干嘛,localhost也访问不了,ping了一 ...
- 使用Windows上的Eclipse 远程调试 linux下的Tomcat
1:修改Linux上Tomcat的catalina.sh,第一行添加declare -x CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_sock ...
随机推荐
- GridView,Repeater增加自动序号列
有三种实现的方式, 第一种方式,直接在Aspx页面GridView模板列中.这种的缺点是到第二页分页时又重新开始了. <Columns> <asp:TemplateField Hea ...
- 区间dp总结篇
前言:这两天没有写什么题目,把前两周做的有些意思的背包题和最长递增.公共子序列写了个总结.反过去写总结,总能让自己有一番收获......就区间dp来说,一开始我完全不明白它是怎么应用的,甚至于看解题报 ...
- 【KMP算法】字符串匹配
一.问题 给定两个字符串S(原串)和(模式串)T,找出T在S中出现的位置. 二.朴素算法 当S[i] != T[j]时,把T往后移一位,回溯S的位置并重新开始比较. (1) 成功匹配的部分(AB ...
- BZOJ 2761: [JLOI2011]不重复数字 水题
2761: [JLOI2011]不重复数字 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2100 Solved: 809 题目连接 http:// ...
- eclipse java项目中明明引入了jar包 为什么项目启动的时候不能找到jar包 项目中已经 引入了 com.branchitech.app 包 ,但时tomcat启动的时候还是报错? java.lang.ClassNotFoundException: com.branchitech.app.startup.AppStartupContextListener java.lang.ClassN
eclipse java项目中明明引入了jar包 为什么项目启动的时候不能找到jar包 项目中已经 引入了 com.branchitech.app 包 ,但时tomcat启动的时候还是报错?java. ...
- MySQL运行状态show status详解
状态名 作用域 详细解释 Aborted_clients Global 由于客户端没有正确关闭连接导致客户端终止而中断的连接数 Aborted_connects Global 试图连接到MySQL服务 ...
- java 4种方式读取配置文件 + 修改配置文件
版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] 方式一采用ServletContext读取读取配置文件的realpath然后通过文件流读取出来 方式二采用ResourceB ...
- 带你玩转JavaWeb开发之六-mysql基本语法详解及实例(2)
1.1.1 对数据库中表的记录进行操作(*****) 1.1.1.1 对数据库中表记录插入操作 [语法] 向数据库表中插入某些列:insert into 表名 (列名1,列名2,列名3-) ...
- js事件代理(委托)
JavaScript事件代理(委托)一般用于以下情况: 1. 事件注册在祖先级元素上,代理其子级元素.可以减少事件注册数量,节约内存开销,提高性能. 2. 对js动态添加的子元素可自动绑定事件. 之前 ...
- web应用程序开发原理
企业应用计算的演变为1.主机/哑终端的集中计算模式: 2.客户机/服务器计算模式:3.浏览器 /服务器计算模式.其中,1具有部署方面的优势,但在一台计算机中进行全部的处理,应用程序难于维护,难于 ...