Visual Studio调试技巧 -- Attach to Process #Reprinted#
from:http://www.cnblogs.com/lyosaki88/p/3481338.html
一般写完代码时,我们通常会启动调试运行一下看看是否正确,启动运行的方式无非是F5-- Start Debugging
或 Ctrl+F5-- Start Withour Debugging(注:不同版本或系统环境不同时,快捷键或有所变化),
如下图1。不用说大家都能感觉到,使用Ctrl+F5调试时程序从启动到运行通常比使用F5快得多。
使用Ctrl+F5时通常是想快速运行一遍,以便检查程序运行的结果是否符合预期。使用F5时通常是想查看代码内部的运行情况,
以便检查到底是哪一步出了问题,或者所有参数是否都正确。(当然,运行Release版本的程序将比上述二者更快。
那是因为编译器在将源代码编译成IL及机器码时加入了相应Debug策略的优化代码,而使用F5调试加入了更多相应的优化代码,所以你才能进行单步调试以及使用断点。)

假如你的代码只有一行打印输出“Hello, World!",当然适用任何调试策略
现在我们以一个大型的网站项目为例,在写完一段代码后,如果想通过启动运行来检查它的正确性,
那么你不仅需要使用IDE对其进行编译(链接)(即F5或Ctrl+F5),
还要将其部署到IIS服务器上(VS已替你自动完成,这时候你的右下角任务栏内会出现相应图标,如图2)。
相比编译(链接)完成就可以直接运行的程序来说,以目前的处理器还是可以明显的感觉到二者启动速度的不同。

图2
一般出现的两种情况是,若使用Ctrl+F5进行调试,程序一旦运行起来,出现BUG会弹出错误页面显示系统抛出的异常,
但大多数情况下仅仅根据这一个页面往往无法断定到底是哪里出了问题,所以又要重新使用F5进行调试。
但这种方法有一个优点就是即使程序报错,IIS不会关闭,假如出现问题的是一段javascript代码,那么你只需要直接在代码上修改后保存,
再在网页上刷新即可查看最新的调试结果,无需重新启动部署IIS。
若使用F5进行调试,那么每次都必须重新启动部署IIS,相当耗时,而程序在运行过程中一旦报错,
IDE会自动退出跟踪并关闭IIS。而程序在出现问题的时候,往往不是一次两次F5就可以解决问题的,
而且每次你重新运行又要重新操作一次需要预先进行的步骤,这耗费的时间真的让人蛋疼。好处就是你可以看到到底是哪里出了什么问题。
还有一种需要使用F5进行调试的情况是,有时系统会抛出这样一些异常,不知是出于安全原因还是处于某种不为人知的原因,
他会告诉你程序出现了错误,但具体错误请你查看InnerException,而这个InnerException是Exception类的一个Property,
你只有通过IDE找到这个Exception并打开它的InnerException才能知道它到底出了什么问题。。。纠结。
使用AttachToProcess意味着将程序的运行和代码的跟踪分离。具体过程如下(以一个网站为例),
首先我使用Ctrl+F5将整个程序(网站)快速启动运行起来,对其进行操作,直到我希望对代码进行跟踪的地方,如图3。


此时我再点击网页上的“添加”按钮,即可从断点开始调试,如图7.
Visual Studio调试技巧 -- Attach to Process #Reprinted#的更多相关文章
- Visual Studio调试技巧 -- Attach to Process
本文系作者原创,但可随意转载.另:图中使用的IDE为Visual Studio 2013 RC 英文版. 一般写完代码时,我们通常会启动调试运行一下看看是否正确,启动运行的方式无非是F5-- Star ...
- Visual Studio 调试技巧[Command Window & Immediate Window ](Tips)
Visual Studio 调试技巧[Command Window & Immediate Window ](Tips) 1. immediate window 定义的一些 alias (// ...
- BI之SSIS入门最新版Visual Studio调试技巧
简介 最近公司业务需要用到BI SSIS,SSIS是什么?"SSIS是Microsoft SQL Server Integration Services的简称,是生成高性能数据集成解决方案( ...
- 新手必备!11个强大的 Visual Studio 调试技巧
简介 调试是软件开发周期中很重要的一部分.它具有挑战性,同时也很让人疑惑和烦恼.总的来说,对于稍大一点的程序,调试是不可避免的.最近几年,调试工具的发展让很多调试任务变的越来越简单和省时. 这篇文章总 ...
- Visual Studio 调试技巧:10 篇热文汇总
本文精选了 DotNet 2017年11月份的10篇热门文章.其中有技术分享.技术资源. 注:以下文章,点击标题即可阅读 <Visual Studio的调试技巧 > 调试技巧是衡量程序员 ...
- Visual Studio 调试技巧---指针,元素个数
刚才,我在Visual Studio 中发现了一个以更好的方式调试指针的技巧.您可以在监视窗口中选择“n”,其中“n”是要显示的元素数.我认为下图是不言而喻的.
- Visual Studio 调试技巧之即时窗口的妙用
在 Visual Studio 中有一个窗口叫 Immediate 窗口,中文版本应该叫即时窗口.默认会在你启动调试时在 VS 编辑器中弹出来.你也可以通过 Debug | Windows | Imm ...
- Visual Studio 调试技巧
.net程序开发工具我都用vs(visual studio),开发过程中的跟踪调试最常用的就是断点跟踪调试了,但是现在才发现,用了这么多年vs断点跟踪调试是白用了啊.它居然还可以有这么多用法. 设置断 ...
- Visual Studio 调试技巧 -- 为 Lambda 表达式设置中断
如果我说 .NET 世界上最厉害的开发平台(语言),资深的同仁肯定不会往下看了,因为这将是一个无休止的争论,到头来搞不好还是人身攻击.然而,如果我说 Visual Studio 是世界上最友好最强大的 ...
随机推荐
- Google浏览器调试js
1.进入source找到js位置 一般js文件就到js目录下找,tpl中的就到tpl中找. 我这次写在tpl中的,就到list中找,它就把list中的js单独显示出来了. 2.设置断点,进行排错.刷新 ...
- 《windows程序设计》学习_3.1:画出雷区,左键的使用
#include<windows.h> #include "resource.h" LRESULT CALLBACK WndProc (HWND, UINT, WPAR ...
- Thread’s start method and run method
工作中用到了Thread,一开始用错了,仔细研究了一下,稍作整理. 前言,今天写代码居然这样写的 new Thread() { @Override public void run() { System ...
- redis的分布式解决方式--codis
codis是豌豆荚开源的分布式server.眼下处于稳定阶段. 原文地址:https://github.com/wandoulabs/codis/blob/master/doc/tutorial_zh ...
- Android TextView 实现文字大小不同和文字颜色不同
效果图如下: 关键代码如下: StringBuffer sb = new StringBuffer(); if(day > 0) { sb.append("<a href=\&q ...
- EF 如何code first
首先配置连接数据.sql server <connectionStrings> <add name="Model1" connectionString=" ...
- 判断两个XML文件结构与内容是否相同
1. 引入 目前公司的这款软件导入导出数据库信息的方法是:组织数据的内容和结构 利用MS com的sax解析 储存数据为XML格式 优点是可以选择部分导出 缺点是速度慢文件导出的文件庞大,若客户出现 ...
- 关于反射的一个小问题---.NetFrameWork版本不一样导致不同的系统的问题
背景: 近期项目中用到发射,本人的电脑上是安装了.NetFrameWork 4.5,然后用着发射蛮顺溜的,啪啪,三下五除二,项目完成了,然后提交测试了,测试的电脑是虚拟机上安装了xp系统,然后.Net ...
- Windows系统中使用WMI获取远程服务器的信息
使用WMI获取远程服务器的状态 我做的项目里边主要包含两个内容: (1)对发布在服务器上的服务(IIS服务.WCF服务)是否可以正常访问: (2)获取服务器上的部分指标:如CPU.内存.磁盘空间信息等 ...
- Linq 入门 顺带 Func与Action
Linq的优点: 查询是一种从数据源检索数据的表达式. 查询通常用专门的查询语言来表示. 随着时间的推移,人们已经为各种数据源开发了不同的语言:例如,用于关系数据库的 SQL 和用于 XML 的 XQ ...