如何利用 VisualStudio2019 遠端工具進行偵錯
Hi 這次要來介紹 如何使用 Visual Studio 2019 遠端工具進行 Release 應用程式偵錯
首先我們先下載 2019 專用的遠端工具(這裡依照不同的 VisualStudio 版本要下載相對應的版本)
下載網址 (這裡我們選x64的版本)
安裝的部分十分簡單我們直接選擇安裝即可

安裝完成後會發現在程式集多了 Remote Debugger 與 Remote Debugger Configuration Wizard 應用程式。其中 Remote Debugger Configuration Wizard
是用來設定遠端工具做為 Service 服務用的,另一個就是今天我們要介紹的 Remote Debugger 。
如果是一般使用者的話記得在執行 Remote Debugger 之bi 要用管理員的身分進行啟動
啟動後的畫面如下:

要注意的一點是,如果需要利用額外的帳號登入這台機器進行遠端偵錯的話,需要透過下圖的 Permissions 進行要使用的帳號新增

再來我們要先記一下遠端用來偵錯的 PORT 是多少。點選下圖紅框處的 Options 後,我們可以得到目前偵錯使用的 PORT 是 4024 (驗證的方式我們先不做修改)


當這隻程式開啟後,我們就可以利用 Visual Studio 2019 來進行對應的專案偵錯了!要特別注意的是要用來偵錯的專案版本必需跟遠端上佈署的版本一樣
接下來如何利用 Visual Studio 2019 遠端偵錯呢?
首先跟以前在本機偵錯 IIS 的做法很像。我們一樣選擇偵錯->附加至處理序

再輸入我們要偵錯目標主機的 IP 與 PORT後,勾選顯示所有使用者的處理序
最後再選擇 w3wp.exe 裡我們要偵錯的 Web 應用程式即可

這時候會發現,雖然 Visual Studio 有成功的進到專案偵錯模式了。但在下中斷點的時候是沒有任何作用的

這個原因其實是因為當使用遠端偵錯時,預設是不會載入專案相關 dll 偵錯符號的。但別緊張!我們可以手動進行載入。先從選單選擇偵錯->視窗->模組

這時候會發現列出了許多模組。仔細一看會發現我們專案名稱也在其中,而且
符號狀態是顯示已略過載符號。

這時候我們只需要確認我們專案 Release 資料夾中有該模組的 pdb 檔。
再直接右鍵點選載入符號。這時會看到符號狀態顯示為:已載入符號
這時回到我們原本下中斷點的地方,就會像以前在偵錯模式時下的實心中斷點了
並且在收到 Request 時,也能確實的進到中斷點
大家可以動手試試看唷!
PS. 在上圖各位應該有注意到有一些變數是顯示 : 「無法取得區域變數或引數的值,因為無法在這個指令指標使用,可能是它已經被最佳化改變了。」
這個問題其實很簡單,但我們佈署選擇 Release 模式時預設是會做程式碼最佳化的
而程式碼在做最佳化時,有些動作是將一些變數或方法做所謂的 inline 效果。也因為這樣我們在下中斷點時,雖然可以看到原始碼就在那,但在 Release 環境執行時,已經在不同位置了。如果覺得這樣很不方便的話,可以透過下圖的設定,將程式碼最佳化的效果取消掉

從下圖可以看到,如果我取消最佳化後,所有的中斷點都能正常進入,而且偵錯符號也會自動載入

以上就是這次如何用遠端工具進行偵錯。謝謝大家 
如何利用 VisualStudio2019 遠端工具進行偵錯的更多相关文章
- 在 Windows 環境下利用 VNC 遠端控管 Mac OS X Server
Mac OS Server 可以使用 VNC 來遠端控管.不過,在 Mac 上打開這個功能很簡單,要讓 Windows 的 VNC Viewer 連上卻很難,原來是有原因的. 首先我們來看怎麼在 Ma ...
- [心得] 如何利用liquibase進行資料庫版本控制 - 實際練習
透過上一篇的基本觀念介紹,希望大家應該有一點點感覺了! 這篇我們就來做個簡單的版本演練,加深印象吧! 我使用的環境如下 System : Windows 7 Database : SQL Server ...
- [心得] 如何利用liquibase進行資料庫版本控制 - 基礎觀念
前言 - 會寫這篇除了是要記錄一下使用的過程之外,也是發現到網路上找來的教學幾乎都是跟其它環境做結合 比較沒有單純利用command進行的流程.也沒有整體觀念的介紹,所以將我所理解的整理分享給大家. ...
- Ubuntu 14 設定 遠端連線,讓別台電腦可以連線進來
Ubuntu 14 需 disable 加密,方可 遠端連線 此台電腦 xxx@xxx-ThinkPad-T460p:~$ gsettings set org.gnome.Vino require-e ...
- 【前端开发】利用Fiddler抓包工具进行本地调试
解决什么问题: 解决前端在本地联调页面 || 样式 || 脚本时经常修改服务器代码,浪费太多时间. 避免多人同时修改代码产生冲突问题.可以在本地调完代码之后,再贴到服务器上. 其实这个问题老早就开始想 ...
- 利用Windows内置工具winsat测试硬盘速度(SSD&机械盘对比)
利用Windows内置工具winsat测试硬盘速度(SSD&机械盘对比) 以下是红色内容是在命令行运行: C:\Users\Administrator>winsat diskWindow ...
- Dubbo管理端工具
要得到dubbo的管理端工具其实很简单,只需要下面几步: 1.下载源码:我下载的是dubbo-dubbo-2.5.7.zip . 2.使用maven命令编译源码,得到war包: 将下载的dubbo-d ...
- <JVM下篇:性能监控与调优篇>01-概述篇-02-JVM监控及诊断工具-命令行篇
笔记来源:尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机) 同步更新:https://gitee.com/vectorx/NOTE_JVM https://codechina.cs ...
- 要做linux运维工程师的朋友,必须要掌握以下几个工具才行 ...
要做linux运维工程师的朋友,必须要掌握以下几个工具才行 ... [复制链接] 发表于 2013-12-13 15:59 | 来自 51CTO网页 [只看他] 楼主 本人 ...
随机推荐
- list方法补充
在上一个随便我们写了list 常用的方法,该随便为一些需要补充的内容 注:本次例子为: student = ["张天赐","小明","小红" ...
- docker下安装Redis
Docker介绍 1.节约时间.快速部署和启动 2.节约成本 3.标准化应用发布 4.方便做持续继承 5作为集群中的轻量主机或节点 6.方便构建基于SOA或者微服务架构的系统 Docker中文文档 h ...
- 一则SQL优化案例
原始sql: select CASE ) counts ,) else deadline end as deadline from t_product_credit) c group by sort ...
- HttpClient忽略SSL证书
今天公司项目请求一个接口地址是ip格式的,如:https://120.20.xx.xxx/xx/xx,报一个SSL的错: 由于之前请求的接口地址都是域名地址,如:https://www.xxx.com ...
- MySQL 部署分布式架构 MyCAT (五)
分片(水平拆分) 4.全局表 业务使用场景: 如果你的业务中有些数据类似于数据字典,比如配置文件的配置, 常用业务的配置或者数据量不大很少变动的表,这些表往往不是特别大, 而且大部分的业务场景都会用到 ...
- Ubuntu安装DaVinci Resolve
安装DaVinci Resolve所需依赖 sudo apt install libssl1.0.0 ocl-icd-opencl-dev fakeroot xorriso 下载MakeResolve ...
- 初识 RESTful API规范
简介 一种软件架构风格.设计风格,而不是标准,只是提供了一组设计原则和约束条件.它主要用于客户端和服务器交互类的软件.基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制. rest是一种 ...
- 201871010116-祁英红《面向对象程序设计(java)》第6-7周学习总结
项目 内容 <面向对象程序设计(java)> https://home.cnblogs.com/u/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.c ...
- 面向对象程序设计(JAVA) 第11周学习指导及要求
2019面向对象程序设计(Java)第11周学习指导及要求 (2019.11.8-2018.11.11) 学习目标 理解泛型概念: 掌握泛型类的定义与使用: 掌握泛型方法的声明与使用: 掌握泛型接 ...
- 解决飞秋绑定TCP错误
电脑不能打开网页,局域网的飞秋不能运行:提示TCP/IP错误,错误事件代码:10106.重装TCP/IP协议后就OK了…… 步骤如下:1.删除这两个注册表选项:(打开注册表命令regedit.如果不能 ...