- 浏览: 2162921 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1878)
- [网站分类]ASP.NET (141)
- [网站分类]C# (80)
- [随笔分类]NET知识库 (80)
- [随笔分类]摘抄文字[非技术] (3)
- [随笔分类]养生保健 (4)
- [网站分类]读书区 (16)
- [随笔分类]赚钱 (7)
- [网站分类].NET新手区 (233)
- [随笔分类]网站 (75)
- [网站分类]企业信息化其他 (4)
- [网站分类]首页候选区 (34)
- [网站分类]转载区 (12)
- [网站分类]SQL Server (16)
- [网站分类]程序人生 (7)
- [网站分类]WinForm (2)
- [随笔分类]错误集 (12)
- [网站分类]JavaScript (3)
- [随笔分类]小说九鼎记 (69)
- [随笔分类]技术文章 (15)
- [网站分类]求职面试 (3)
- [网站分类]其他技术区 (6)
- [网站分类]非技术区 (10)
- [发布至博客园首页] (5)
- [网站分类]jQuery (6)
- [网站分类].NET精华区 (6)
- [网站分类]Html/Css (10)
- [随笔分类]加速及SEO (10)
- [网站分类]Google开发 (4)
- [随笔分类]旅游备注 (2)
- [网站分类]架构设计 (3)
- [网站分类]Linux (23)
- [随笔分类]重要注册 (3)
- [随笔分类]Linux+PHP (10)
- [网站分类]PHP (11)
- [网站分类]VS2010 (2)
- [网站分类]CLR (1)
- [网站分类]C++ (1)
- [网站分类]ASP.NET MVC (2)
- [网站分类]项目与团队管理 (1)
- [随笔分类]个人总结 (1)
- [随笔分类]问题集 (3)
- [网站分类]代码与软件发布 (1)
- [网站分类]Android开发 (1)
- [网站分类]MySQL (1)
- [网站分类]开源研究 (6)
- ddd (0)
- 好久没写blog了 (0)
- sqlserver (2)
最新评论
-
JamesLiuX:
博主,能组个队么,我是Freelancer新手。
Freelancer.com(原GAF – GetAFreelancer)帐户里的钱如何取出? -
yw10260609:
我认为在混淆前,最好把相关代码备份一下比较好,不然项目完成后, ...
DotFuscator 小记 -
日月葬花魂:
大哥 能 加我个QQ 交流一下嘛 ?51264722 我Q ...
web应用程序和Web网站区别 -
iaimg:
我想问下嵌入delphi写的程序总是出现窗体后面感觉有个主窗体 ...
C#自定义控件:WinForm将其它应用程序窗体嵌入自己内部 -
iaimg:
代码地址下不了啊!
C#自定义控件:WinForm将其它应用程序窗体嵌入自己内部
如果没有调试功能,VS只能算是一个允许你编译程序,功能丰富的编辑器。拥有了调试功能,VS才变为一个不可多得的开发工具。其实评判一个IDE的好坏主要还是要看它的调试功能如何。
VS提供了丰富的调试经验。你可以设置断点,逐行执行,当程序执行时可以设置和读取变量值。这里主要展示如何充分利用VS的调试功能,将会学会如何设置断点、检查断点、当异常抛出时暂停执行,以及如何调试类似JavaScript、VBScript等脚本语言以及运行在SQLServer实例上的T-SQL等。
# Hack 36. 设置断点
VS提供了一个强有力的调试器,最常用的功能就是设置断点,当到达断点时,程序挂起,进入中断模式;在此模式下开发人员可以检查或者改变程序的变量。在VS2005中,甚至可以改变程序代码。VS能够设置智能断点,比如当某种特定条件满足或者经过一个断点一定次数后挂起程序。
(1) 到达特定行时进入中断模式
其实就是常用的设置断点方式,在此行最左边的空白处点击一下,出现个红色小圆,它的名字就叫断点;如果去除断点,就再点一下,呵呵,其实用快捷键F9可以来回切换的。删除所有断点是用Ctrl+Shift+F9。
此书说可以通过新建断点对话框来创建断点,快捷方式是Ctrl+B,但是偶却只调出来了一个添加函数断点的对话框,和书中讲的不一样,可能VS2005有所改变了吧。
书中说此对话框有四个页面:
函数:用来给一个函数的特定行添加断点;
文件:用来给解决方案中某个文件的特定行添加断点;
地址:给特定内存地址设定断点。通常用于调试非托管代码;
数据:用来给一个变量添加断点。当变量改变时,断点会触发。数据断点仅能用于调试非托管代码时使用。
可能是VS2005的确对其进行了修改,提供了函数断点设置,另外还有一个新建数据断点,但是一直处于不可用状态,可能是比较智能,能够区别当前是否是非托管代码。偶本人也觉得对于文件断点没有什么必要,其实都差不多。
(2) 当一个函数被调用时进入中断模式
在VS2005中就是通过Ctrl+B调出在函数设置断点对话框,指定函数名即可,格式如下:命名空间.类名.方法名。如果仅仅指定了方法名或者类名和方法名,则VS会智能列出供您选择。
也可以利用调用堆栈窗口来配置调试器在特殊函数处中断,当处于调试模式下,选择调试->窗口->调用堆栈菜单,则此窗口会列出所有在调用堆栈上的函数。在函数名上右击并选择插入断点选项即可。通过它来设置断点在调试递归函数时很方便。
(3) 查看断点
查看断点窗口通过快捷键Ctrl+Alt+B可以调出,可以提供当前断点列表,并且能够禁用或者启用断点、删除、添加、编辑断点。如果要编辑断点属性,其实是通过右键菜单里的“位置”项,它类似于新建断点里的文件断点,呵呵,VS2005真是把东西都做的更细化了,把很多原来通过一个窗口多个Tab页的方式变为直接了当的方式。
(4) 条件中断
可以通过断点窗口里来操作,在断点的右键上下文菜单中选择“条件”就可以进行设置了。中断条件表达式可以是任何符合调试器表达式标准的表达式,可以包括关系运算符和非关系运算符+、-、&&等。变量和对象属性也都可以作为表达式的一部分。完整的调式器合法表达式列表地址如下:
(5) 控制断点的命中次数
可以通过断点窗口里来操作,在断点的右键上下文菜单中选择“命中次数”就可以进行设置了。可以设置为总是中断、大于等于、等于、几倍关系。对于在循环中的特定循环因子数值时很有用。
# Hack 37. 检查断点故障
断点有时不能正常工作,微软负责开发VS调试器的领导提供了一个在线小Web程序来帮助解决断点问题。利用这个工具,通过交互式的问答形式可以获得一些解决问题的建议。
http://www.controlav.com/bphelper
# Hack 38. 自定义VS的异常处理
VS进入中断模式有两种情况:第一,就是断点;第二,就是通过异常;你很可能希望当异常出现时,无论它是否被处理,都进入中断模式。VS可以定制为当某种特定的异常出现时迅速进入中断模式。
(1) 使用异常对话框
通过菜单“调试->异常”或者快捷键Ctrl+Alt+E调出异常对话框,它允许指定当遇上某种特定类型异常时VS的行为,缺省行为就是当异常抛出时继续,如果未被处理则进入调试器。若要修改某种异常类型的设置,只要在异常树状列表中选择它,并自定义单选按钮来指定调试器的行为。
注意:修改某种异常类型的行为会影响到它的衍生异常类型的行为。
(2) 添加自定义异常
通过异常对话框可以改变针对系统异常的调试器行为,但是你有可能想对自己创建的异常定义行为。要达到这个目的,就选择异常树的顶层项,然后点“添加”按钮来进行添加,输入异常的名字时要输入完整的名字,包括命名空间,大小写敏感。对于自定义的异常,可以进行删除。
(3) 快速查找异常名称
通过异常对话框可以通过异常的名称快速进行定位。
# Hack 39. 调试脚本
VS具有强大的调试功能,在Web项目方面也很强,不仅针对ASP.NET,而且对于JavaScript和VBScript脚本也有严格的调试功能。这里将介绍如何设置VS让你在浏览器里来调试脚本。
要在浏览器里调试脚本,以IE6为例,首先要启用浏览器的脚本调试功能,具体如下:
a. 打开IE;
b. 选择“工具->Internet选项”,在窗口选择“高级”页面,并去掉“禁用脚本调试”前的复选框的对勾;
c. 重新启动浏览器,则会发现浏览器的“查看”菜单下多了一项“脚本调试程序”;
一旦启用了脚本调试功能,你可以以多种方式来调试脚本:
第一种就是利用“脚本调试程序”下的两个子菜单项,你可以选择“打开”,则会打开调试器,然后设置断点;另外一个选项就是在下一条语句中断,这会导致当运行到下一语句时进入调试器。
第二种就是从VS内部开始调试,用VS打开Web项目并启动调试器。启动调试后,你需要访问文档窗口,可以通过选择“调试->窗口->文档窗口”或者快捷键Ctrl+Alt+N来启用打开。此窗口显示了当前运行的Web文档的列表,通常仅包含一个页面,在利用帧框架时可能会有不止一个文档。选择要调试的文档,那个文档的HTML输出会显示为一个正常的HTML文件。可以设置断点并进行调试。
发表评论
-
where T:new() 是什么意思
2014-04-18 09:26 1450where T:new() 是什么意思 经常看到方法后面 ... -
好久没写blog了
2012-05-21 18:43 2好久没写blog了 -
test
2011-03-19 09:48 815testddddddddddd -
QQ自动发日志分析
2011-03-10 18:15 1261首先列举比较重要的问 ... -
test
2011-02-23 18:03 803test -
test
2011-02-23 17:53 873test -
为啥cnblogs的数据不能导了
2011-02-23 11:03 909为啥cnblogs的数据不能导了内容 -
如何保护.net中的dll文件(防破解、反编译)
2010-07-30 00:28 1486.net是一种建立在虚拟机上执行的语言,它直接生成 MSIL ... -
提搞网站访问速度可做哪些优化
2010-08-08 15:30 1116一、 服务器优化 ... -
ASP.NET(c#)如何判断浏览器是否支持cookies
2010-07-29 09:33 1711实例代码: 下面是写cookie ... -
N点虚拟主机管理系统(For Windows2003/2008)功能及介绍
2010-04-09 11:23 2258N点虚拟主机管理系统是 ... -
使用c#+(datagrid控件)编辑xml文件
2010-04-06 09:13 1163对xml文件的记录进行删除,修改,或增加新记录。 利用了d ... -
HTTP代理模块(HTTP Proxy)
2010-04-04 10:19 3045HTTP代理模块(HTTP Proxy ... -
Error 80040154 retreiving COM Class factory
2010-03-29 09:23 22481.ask: Greetings, I have ... -
petshop4.0 详解之二(数据访问层之数据库访问设计)
2010-03-27 11:08 1066在系列一中,我从整体上分析了PetShop的架构设计,并提及了 ... -
分享十五个最佳jQuery幻灯插件和教程
2010-03-25 09:17 2005<p>在网站前端中使用jQuery库已经变得越来越 ... -
20个软件开发常用设计文档大全下载
2009-08-27 10:22 965搜集了一些软件开发的常用文档,分享给大家 总下载地址: h ... -
asp.net 在线 mp3,wma, avi
2009-09-04 13:58 9291.前台js<script type="tex ... -
sql db link string
2009-09-06 21:52 978SQL Server ODBC Standar ... -
ASP.Net2.0小技巧 保持滚动条的位置 焦点移动到某个控件 $符号轻松的使用FindControl
2009-09-11 11:05 1293您可能不知道的ASP.Net2.0 ...
相关推荐
3. **缺失的源代码**:如果你正在调试的代码是从库或者DLL中调用的,而你没有相应的源代码,VS无法设置断点。此时,你需要使用“调试信息”来查看和调试这些代码。 4. **版本不匹配**:如果你的源代码与正在调试的...
ABAP 外部断点设置是指在 SAP 系统中使用 ABAP 语言编写的程序时,如何设置断点以便于调试和故障排除的过程。外部断点设置是指在 ABAP 函数中设置断点,以便在远程调试时能够进入该函数的内部。 为了实现 ABAP 外部...
易语言设置内存断点源码,设置内存断点,DebugEip,DebugRetn,GetDebugInfo,SetUnhandledExceptionFilter,SuspendThread,RtlMoveMemory_EXCEPTION_RECORD
### vs2008 高级条件断点 VS 指定值时下断点 在软件开发过程中,调试是一项非常重要的工作。Visual Studio 2008(以下简称VS2008)作为一款功能强大的集成开发环境,提供了丰富的调试工具帮助开发者定位问题并解决...
### VS2010断点进不去解决方法 在Visual Studio 2010(简称VS2010)开发环境中遇到断点无法命中时,通常会遇到一个提示:“The breakpoint will not currently be hit. The source code is different from the ...
在VS2008中设置高级断点的方法。如设置当某个变量的值改变时的断点,设置某一段内存值发生变化时的断点。
"VC++6.0程序调试设置断点" VC++6.0程序调试设置断点是指在VC++6.0集成开发环境中使用调试工具来单步执行程序、设置断点、观察运行环境的变化,以便高效地完成程序的调试。程序设计初学者可以通过学习VC++6.0调试...
在传统的调试过程中,我们通常通过在源代码中的某一行设置断点(通常是按F9),然后运行程序直到遇到该断点时暂停。然而,对于循环次数较多的情况,这种简单的断点方式可能效率低下。例如,在一个嵌套循环中,如果...
它可能会调用`hwbrk.cpp`中的接口,设置断点,然后执行特定的内存访问操作,期望在预期的内存地址触发断点。 在实际使用硬件断点时,需要考虑以下几点: - 硬件断点的数量有限,不同处理器支持的硬件断点数量不同,...
当尝试在代码中设置断点时,VS2005可能会提示“当前不会命中断点。还没有为该文档加载任何符号”。这种现象通常出现在使用VC(Visual C++)组件进行编程的过程中。 #### 二、断点失效的原因分析 断点失效的原因...
### PhpStorm 设置断点调试XDebug知识点详解 #### 一、XDebug简介与安装 XDebug 是一个 PHP 的扩展,主要用于 PHP 的调试与分析。通过 XDebug 可以方便地进行断点调试、性能分析等功能。 - **下载XDebug**:访问 ...
1. **设置断点**:在WebStorm中打开Vue组件源码,找到你想要设置断点的行,单击行号旁边的空白区域,一个红点会显示,表示该行已设置断点。 2. **启动调试会话**:选择菜单栏的"Run" > "Edit Configurations",创建...
在 VS 2005 中,变量跟踪主要依靠设置断点,逐语句逐过程调试查看变量的值。以下是一些常用的变量跟踪方法: 1. 局部变量窗口/监视窗口可以检查当前各个变量的取值。 2. 将鼠标放到要查看的变量上,停留一会临时...
模拟器中断跟踪断点设置函数 触屏相关:比如触摸屏按下函数等!
OD设置断点函数 在本文中,我们将详细介绍OD设置断点函数的知识点。 断点函数是OD(OllyDbg)调试工具中的一种强大功能,能够拦截和控制程序的执行流程。断点函数可以分为多种类型,包括窗口断点、消息框断点、...
压缩包内的"2.VT调试器之无限硬件断点.mp4"视频教程,很可能详细演示了如何在VT调试器中设置和使用无限硬件断点,包括如何选择断点位置、查看断点状态、控制断点行为,以及如何利用这一特性进行复杂的程序分析。...
以下将详细介绍如何进行Java远程调试以及在远程服务器上设置断点。 首先,理解远程调试的基本原理是关键。Java提供了Java Debug Wire Protocol (JDWP) 来支持远程调试。JDWP是一个协议,使得调试器能够与Java虚拟机...
易语言源码易语言设置内存断点源码.rar 易语言源码易语言设置内存断点源码.rar 易语言源码易语言设置内存断点源码.rar 易语言源码易语言设置内存断点源码.rar 易语言源码易语言设置内存断点源码.rar 易语言源码...