VisualStudio2005中编译调试新功能
visualstudio调试方法

visualstudio调试⽅法最近碰巧读了Ivan Shcherbakov写的⼀篇⽂章,《》。
这篇⽂章只介绍了⼀些有关Visual Studio的基本调试技巧,但是还有其他⼀些同样有⽤的技巧。
我整理了⼀些Visual Studio(⾄少在VS 2008下)原⽣开发的调试技巧。
(如果你是⼯作在托管代码下,调试器会有更多的特性,在CodeProject中有介绍它们的⽂章),下⾯是我的整理的⼀些技巧:1. 异常中断 | Break on Exception2. Watch窗⼝中的伪变量 | Pseudo-variables in Watch Windows3. 符号越界后查看堆对象 |4. 查看数组的值5. 避免进⼊不必要的函数6. 从代码启动调试器 | Launch the debugger from code7. 在Output窗⼝打印8. 隔离内存泄漏9. 调试发⾏版 | Debug the Release Build10. 远程调试11. 数据断点12. 线程重命名13. 给指定线程设置断点14.(粗略)估算执⾏时间15. 数字格式化16. (内存)数据格式化17.系统DLL中断18.加载符号表19. 监测MFC中的内存泄漏20. 调试ATL技巧1:异常中断在处理被调⽤之前,异常发⽣时可以启动调试器进⾏中断,可以让你在异常发⽣后⽴即调试程序。
操作调⽤栈便于你去查找异常发⽣的根本原因。
Vistual Studio允许你去指定想要中断的异常类型或者特殊异常。
选择菜单Debug>Exceptions弹出对话框,你可以指定原⽣的(或者托管的)异常,除了调试器⾃带的⼀些默认异常,你还可以添加⾃⼰的⾃定义异常。
下⾯是⼀个std::exception 异常抛出时调试器中断的例⼦。
更多阅读:1.2.技巧2:Watch窗⼝中的伪变量Watch窗⼝或QuickWatch对话框提供⼀些特定的(调试器可识别的)变量,被称为伪变量。
Visual C# 2005 方案 - 调试快捷键

Visual C# 2005 方案 -> 调试快捷键代码对齐:ctrl + K ctrl + f命令名快捷键说明调试.应用代码更改Alt + F10启动生成操作,利用它可以通过“编辑并继续”功能应用对正在调试的代码所作的更改。
调试.自动窗口Ctrl + D,Ctrl + A 显示“自动”窗口,以查看在当前过程中,目前所执行中的变量的值。
调试.全部中断Ctrl + Alt + Break 临时停止执行调试会话中的所有进程。
仅可用于“运行”模式。
调试.在函数处中断Ctrl + D,Ctrl + N显示“新断点”对话框。
调试.断点Ctrl + D,Ctrl + B 显示“断点”对话框,可以在其中添加和修改断点。
调试.调用堆栈Ctrl + D,Ctrl + C 显示“调用堆栈”窗口,以显示当前执行线程的所有活动过程或堆栈帧的列表。
仅可用于“运行”模式。
调试.删除所有断点Ctrl + Shift + F9清除项目中的所有断点。
调试.反汇编Ctrl + Alt + D显示“反汇编”窗口。
调试.启用断点Ctrl + F9将断点从禁用切换到启用。
调试.异常Ctrl + D,Ctrl + E显示“异常”对话框。
调试.即时Ctrl + D,Ctrl + I 显示“即时”窗口,在此可计算表达式和执行个别命令。
调试.局部变量Ctrl + D,Ctrl + L 显示“局部变量”窗口,以查看当前堆栈帧中每个过程的变量及变量值。
调试.内存1Ctrl + Alt + M,1显示“内存 1”窗口,以查看大的缓冲区、字符串以及无法在“监视”或“变量”窗口中清楚显示的其他数据。
调试.内存2Ctrl + Alt + M,2显示“内存 2”窗口,以查看大的缓冲区、字符串以及无法在“监视”或“变量”窗口中清楚显示的其他数据。
调试.内存3Ctrl + Alt + M,3显示“内存 3”窗口,以查看大的缓冲区、字符串以及无法在“监视”或“变量”窗口中清楚显示的其他数据。
第02-01节 VS2005程序编译环境设置

VC++程序编译环境设置•程序编译环境概述序编境概•General•Debug•c/c++•Link•Build Event大家可能一直在用VC开发软件,但是对于这个编译器却未必很了解。
原因是多方面的。
大多数情况下,我们只停留在使用它,而不会想去了解多方面的。
大多数情况下,我们只停留在“使用”它,而不会想去“了解”它。
因为它只是一个工具,我们宁可把更多的精力放在C++语言和软件设计上。
我们习惯于这样一种“模式”:建立一个项目,然后写代码,然后编译,反反复复调试。
反反复复调试设置基础类用法和目录。
可以设置连接MFC库的方式(静态或动态)。
如果是动态库的方式(静态或动态)如果是动态连接,在你的软件发布时不要忘了带上MFC的DLL。
Output directories 中Intermediate files:用于设置编译生成的中间文件存放目录.I t di t fil如果要按外部制作文件(exported makefile)方式为每个工程配置导出不同的可建立项目,请选择Allow per-configuration置导出不同的可建立项目请选择Allow per configuration dependencies.可以设置调试时运行的可执行文件,以及命令行参数等.General:一些总体设置。
AdditionalIncludeDirectories:添加到目录列表中的目录,该列表中的目录用于搜索包含文件。
于搜索包含文件若要添加多个目录,请多次使用此选项。
直到找到指定包含文件时才停止搜索这些目录。
可以将此选项与“忽略标准包含路径”选项一起使用。
编译器按下列顺序搜索目录包含源文件的目录编译器按下列顺序搜索目录:(1)包含源文件的目录。
(2)用/I选项指定的目录(按照CL 遇到它们的顺序排列)。
(3)在INCLUDE环境变量中指定的目录。
Warning level:用来控制警告信息,其中Level 1是最严重的级别;Warnings Warning level:用来控制警告信息其中Level1是最严重的级别Warningsas errors将警告信息当作错误处理;Optimizations是代码优化,可以在Category的Optimizations项中进行更细的设置;DebugInformationFormat :生成调试信息:disable,不产生任何调试信息(编译比较快);C 7.0-Compatible,记录调试器用到的所有符号信息到文件和文件;g,创建文件记录所有调试.OBJ.EXE Program Database.PDB信息;Program Database for "Edit & Continue",创建.PDB文件记录所有调试信息,并且支持调试时编辑。
visual studio2005 编写汇编语言 -回复

visual studio2005 编写汇编语言-回复在Visual Studio 2005中编写汇编语言是一项挑战性的任务,因为这是一款主要面向C++和其他高级语言的集成开发环境。
然而,有时我们可能需要直接在汇编语言中编写一些特定的代码,以获得更高的性能和更低的级别的控制。
在本文中,我们将探讨如何在Visual Studio 2005中使用汇编语言进行编程。
首先,我们需要理解汇编语言的基础知识。
汇编语言是一种低级别的编程语言,使用特定的指令集来操作计算机的硬件。
与高级语言相比,汇编语言更接近机器语言,因此可以对计算机的底层执行更细粒度的操作。
Visual Studio 2005提供了一个叫做MASM(Microsoft Macro Assembler)的工具,可用于汇编语言程序的开发。
MASM是微软提供的汇编器,它支持基于x86和x64架构的汇编语言开发。
首先,我们需要创建一个新的汇编语言项目。
在Visual Studio 2005中,单击“文件”菜单,然后选择“新建”>“项目”。
在弹出的对话框中,选择“Win32”类别,然后选择“控制台应用程序”模板。
在项目名称中输入一个合适的名称,并选择存储项目的位置。
勾选“空项目”复选框以创建一个空白项目。
下一步,我们需要添加一个汇编文件到我们的项目中。
右键单击“源文件”文件夹,然后选择“添加”>“新建项”。
在弹出的对话框中,选择“C++文件”,然后将文件扩展名更改为“.asm”。
点击“添加”按钮,将汇编文件添加到项目中。
现在,我们可以开始编写我们的汇编代码。
在汇编文件中,我们可以使用一系列汇编指令来执行特定的操作。
例如,我们可以使用MOV指令将数据从一个寄存器复制到另一个寄存器,使用ADD指令执行加法操作,使用CMP指令进行比较等等。
不同的指令有不同的语法格式,因此我们需要仔细阅读相关的文档来了解如何正确使用它们。
除了汇编指令之外,我们还可以使用宏和伪指令来简化汇编代码的编写。
VSCode如何进行代码的错误调试和修复

VSCode如何进行代码的错误调试和修复在软件开发过程中,调试和修复代码中的错误是一项非常重要的任务。
Visual Studio Code(简称VSCode)作为一款功能强大的代码编辑器,提供了丰富的调试功能,可以帮助开发者更高效地进行代码调试和错误修复。
本文将介绍VSCode中的常用调试工具和技巧,以及如何使用它们来定位和修复代码中的错误。
一、启用调试功能在开始调试之前,首先需要启用VSCode的调试功能。
在VSCode的侧边栏中,点击调试按钮(一个类似于虫子的图标),然后点击左上角的齿轮图标,选择"启动调试"。
这将打开一个配置文件launch.json,该文件用于配置调试器的行为。
二、设置断点断点是调试中最常用的工具之一,用于指示程序执行到某个位置时暂停。
在编辑器中,单击代码行号左侧的空白区域,即可设置或取消断点。
设置断点后,当程序执行到该行代码时,调试器会在该处暂停,以便开发者检查变量的值、观察程序执行路径等。
三、运行和调试代码1. 使用F5键或点击调试工具栏中的“开始调试”按钮,以启动调试器并运行代码。
调试器将会在第一个断点处暂停执行。
2. 在代码运行时,可以使用调试工具栏上的一系列按钮来控制程序的执行。
例如,单步调试、继续执行、停止调试等。
3. 当程序暂停时,可以使用调试工具栏中的“观察”面板来查看变量的值,以及使用“调用栈”面板来查看当前执行的函数调用链。
四、异常捕获和处理在代码中,当出现异常或错误时,VSCode会自动提示并暂停程序的执行。
此时,可以通过查看异常的详细信息以及调用栈来定位错误的原因。
VSCode还提供了一些快捷键和功能,如“继续运行”、“跳过此异常”等,以帮助快速定位和处理异常。
五、代码修复在调试过程中,可以通过观察变量的运行状态和程序的执行路径,定位到代码中的问题以及潜在的错误。
一旦找到错误,可以使用以下方法进行修复:1. 直接在编辑器中更改代码:通过修改代码并保存,可以立即看到修改后的效果。
VisualStudio代码调试技巧指南

VisualStudio代码调试技巧指南第一章:VisualStudio调试环境介绍VisualStudio是一款集成开发环境(IDE),广泛应用于软件开发中。
在开发过程中,调试是不可或缺的一环,它可以帮助我们找出代码中的问题并进行修复。
在VisualStudio中,调试功能十分强大,本章将介绍VisualStudio中的调试环境及其基本使用方法。
1.1 调试窗口VisualStudio中的调试窗口是我们调试过程中的重要工具,通过它我们可以查看并分析程序的执行情况。
调试窗口包括如下几个常用窗口:"自动"、"局部变量"、"监视"和"调用栈"窗口。
1.2 断点调试断点调试是VisualStudio中最基本的调试功能,我们可以在代码的任意位置设置断点,当程序运行到断点处时会暂停执行,并停留在断点所在的代码行,方便我们观察和检查变量的值、执行流程等。
设置断点的方式很简单,只需在欲设置断点的行上点击左侧行号即可。
第二章:调试工具的高级使用除了基本的断点调试功能之外,VisualStudio还提供了许多高级的调试工具,有助于更加高效地进行代码调试。
本章将介绍一些常用的高级调试工具的使用方法。
2.1 条件断点条件断点是一种特殊的断点,我们可以为其设置一个条件,只有当条件满足时,程序才会在该断点处暂停执行。
条件断点的设置方式是在断点属性中添加条件表达式,一旦满足条件,程序将会在该断点位置暂停执行。
2.2 数据断点数据断点在程序中监视特定的变量,一旦该变量的值发生变化,程序将会在数据断点处暂停执行,方便我们再次检查该变量的状态。
数据断点的设置方式是在变量上右键点击,选择"数据断点"并指定断点的触发条件。
2.3 自定义调试视图在调试过程中,我们有时需要对变量的某些属性进行监控,以便更好地理解程序的执行情况。
VisualStudio中的自定义调试视图功能可以帮助我们实现这一目的。
visual studio编译代码
visual studio编译代码VisualStudio是一款集成开发环境,可用于编写和调试多种编程语言,例如C++、C#、Java等。
本文将介绍如何在Visual Studio 中编译代码。
1. 打开Visual Studio。
在开始菜单中搜索Visual Studio,然后单击打开。
2. 创建一个新项目。
在Visual Studio中,选择“文件”>“新建”>“项目”,然后选择所需的项目类型。
例如,如果要创建C++项目,请选择“Visual C++”>“Win32”>“Win32控制台应用程序”。
3. 编写代码。
使用所选语言编写代码。
在Visual Studio中,您可以使用代码编辑器轻松编写代码。
4. 编译代码。
在Visual Studio中,选择“生成”>“生成解决方案”或按下F7键编译代码。
编译后,可以在“输出”窗口中查看编译信息。
5. 调试代码。
在Visual Studio中,选择“调试”>“开始调试”或按下F5键运行代码。
您可以在“输出”窗口中查看运行时信息,并在需要时使用Visual Studio的调试工具来调试代码。
6. 发布代码。
在Visual Studio中,选择“生成”>“发布解决方案”以发布代码。
您可以选择要发布的文件夹或服务器,并选择所需的发布选项。
总之,Visual Studio是一款功能强大的集成开发环境,可帮助开发人员轻松编写、编译和调试代码。
如果您想在Visual Studio中编译代码,请按照上述步骤进行操作。
visual studio2005 编写汇编语言
visual studio2005 编写汇编语言如何在Visual Studio 2005中编写汇编语言(Visual Studio2005 Writing Assembly Language)。
使用Visual Studio 2005编写汇编语言可能相对较陌生,因为Visual Studio在主要用于C++和C#等编程语言的开发环境。
然而,如果您想要在Visual Studio 2005中学习和编写汇编语言,本文将一步一步地指导您。
汇编语言是一种低级语言,它直接与计算机硬件进行交互。
与高级语言相比,汇编语言更接近机器语言,可提供对硬件的更精确控制。
在Visual Studio 2005中,您可以使用MASM(Microsoft Macro Assembler)来编写和调试汇编语言程序。
接下来,我们将一步一步地介绍如何设置Visual Studio 2005以进行汇编语言编写。
第一步:安装Visual Studio 2005首先,您需要安装Visual Studio 2005。
请确保您从可靠的来源获取软件安装程序并按照指示进行安装。
一旦安装完成,我们可以继续下一步。
第二步:创建新的汇编语言项目打开Visual Studio 2005并选择“文件”->“新建”->“项目”。
在出现的对话框中,选择“Visual C++”->“Win32”->“Win32控制台应用程序”,然后为您的项目选择一个合适的名称和位置。
单击“确定”以继续。
第三步:配置项目属性在Visual Studio 2005中,您需要配置项目属性以便正确设置汇编语言编译器。
右键单击项目名称,然后选择“属性”以打开项目属性页。
在属性页的左侧,选择“配置属性”->“链接器”->“高级”。
将“启用引导时生成代码”选项更改为“否”。
这可以避免在编译链接时出现错误。
然后,选择“配置属性”->“链接器”->“系统”。
visual studio高效调试手段与技巧
visual studio高效调试手段与技巧以下是一些提高在Visual Studio中调试的效率的手段和技巧:1. 使用断点:设置断点是最基本的调试技巧,可以在代码中设置断点,程序执行到断点处时会暂停执行,可以检查变量的值、调用堆栈等信息。
2. 条件断点:可以设置断点在满足特定条件时才会触发,可以通过右键单击断点并选择“条件”选项来设置条件。
3. 数据查看窗口:可以在调试过程中实时查看变量的值,可以通过将鼠标悬停在变量上或者在代码中插入watch表达式来查看变量的值。
4. 自动变量窗口:可以在断点处展开查看变量的值,也可以通过选择变量并点击右键选择"Add to Auto's"将其添加到自动变量窗口中。
5. 输出窗口:可以使用输出窗口来向控制台打印输出信息,可以使用Debug类中的方法如Debug.WriteLine()或者在代码中使用System.Diagnostics.Debug.WriteLine()来输出调试信息。
6. 即时窗口:可以在调试过程中临时执行一些代码,可以在即时窗口中输入表达式,可以检查变量的值、调用函数等。
7. 异常窗口:可以捕获和处理异常,可以在调试过程中查看程序中的异常信息。
8. 调试启动选项:可以在调试过程中选择以不同的方式启动程序,如选择启动应用程序或选择附加到进程。
9. 追踪点:可以设置追踪点,当程序运行到追踪点时,会以消息框的形式显示追踪点的信息。
10. 单步调试:可以使用单步调试功能逐行执行代码,可以逐过程调试、逐语句调试等。
11. 查找调用层次:可以使用“调用层次窗口”或者“调用栈窗口”来查看方法的调用层次信息。
12. 保存调试状态:可以在调试过程中保存断点和调试信息的状态,可以在下一次打开解决方案时恢复调试状态。
希望这些技巧能帮助您提高在Visual Studio中的调试效率。
快速上手VisualStudio代码调试技巧
快速上手VisualStudio代码调试技巧Visual Studio是一款功能强大的集成开发环境(IDE),广泛用于软件开发和调试。
通过掌握一些快速上手的Visual Studio代码调试技巧,开发人员可以提高调试效率和质量。
本文将结合实际案例,按照类别划分章节,介绍一些常用的Visual Studio代码调试技巧。
第一章:断点调试技巧断点是调试中最常用的技巧之一。
在需要观察程序运行状态的代码行上设置断点,可以暂停程序执行,让开发人员逐步调试代码。
以下是一些使用断点技巧:1. 设置断点:在代码行左侧单击鼠标左键,或使用快捷键F9,即可设置断点。
可以设置单个断点、条件断点等。
2. 条件断点:右键单击断点位置,选择条件,可以设置断点在满足某个条件时才暂停程序执行。
3. 禁用/启用断点:在调试过程中,可能需要暂时禁用某个断点,右键单击断点位置,选择禁用。
再次启用也是同样的操作。
第二章:数据查看技巧在调试过程中,查看数据状态非常重要。
Visual Studio提供了多种方式来查看变量的值、观察表达式等。
1. 自动变量窗口:执行到断点时,可以在自动变量窗口中查看当前函数中的变量。
2. 手动监视变量:选择要监视的变量,右键单击,在右键菜单中选择"在监视窗口中查看"。
3. 数据窗口:可以编写表达式并在调试过程中查看表达式的值,可以帮助理解代码执行过程。
第三章:调试工具窗口技巧Visual Studio提供了一些非常有用的窗口,可以在调试过程中提供更多的调试信息和工具。
1. 输出窗口:在调试过程中,将需要输出的信息打印到输出窗口,方便观察程序的执行情况。
2. 异常设置窗口:在调试过程中,可以设置异常断点,当程序抛出特定的异常时中断程序运行。
3. 查找窗口:通过查找窗口,可以在代码中查找特定的字符串、方法等,方便定位问题代码。
第四章:调试技巧除了基本的断点调试技巧,还有一些常用的高级调试技巧,可以帮助开发人员解决更复杂的问题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在日常的编程中,程序员经常离不开的工作之一,就是调试。
当写好一段代码或程序后,在运行后总会出现这样那样的问题,比如各样的错误,程序员就必须进行调试,将这些错误排除。
在最新出炉的Visual Studio 2005中,将提供十分强大而方便的调试功能,从而使程序员能节约时间,提高工作效率。
本文中,将主要介绍Visual Studio 2005 在调试方面新增加的几个重要功能,并介绍它们的简单用法。
Edit and Contiue功能
在调试程序的时候,经常会遇到这样的情况:在调试一大段代码时,遇到了一个小的错误,比如参数的赋值错误了,这时候,往往希望能够马上将这些小的错误改正过来后,能够继续调试跟踪下去,而不用结束整个调试过程去修改。
在Visual Studio 2003中,我们必须停止当前的调试,修改错误的地方,再重新编译,这样十分不方便。
在Visual Studio 2005 中,提供了一个新的功能叫"edit and continue",意思是说,当你在调试时,遇到小的错误需要马上修改后,可以进行编辑修改,然后继续往下调试,不需要结束整个调试的过程,当你修改后,调试器在后台进行了自动的编译,并且会执行新修改的代码,十分方便。
下面举个例子进行说明。
打开Visual Studio 2005,使用c#建立一个winform窗体应用程序,在窗体中添加一个l abel标签,一个文本框,一个按钮,如下图所示,我们要实现的功能是,在文本框输入一些信息后,点按钮,会弹出一个消息框,显示的是刚才输入的信息。
假如我们编写的代码如下所示,出现了一个小错误,把textbox1.text的内容当作字符串的一部分了,所以显示不出用户输入的信息。
现在,如果我们在调试时遇到了这个错误,则可以使用edit and continue功能来进行改正。
首先,按F7切换到代码视图,在MessageBox.Show这一行设置断点,之后按F5运行程序,当在文本框输入字符串时,由于设置了中断,光标停留在messagebox.show这行上,这时,我们可以修改代码,修改为:
修改完后,继续按F5运行,这时候,则会显示正确的结果了,如下图,而不需要使用以往的"stop debugging"的功能先停止调试再修改程序。
可视化调试器(Debugging Visualizers)
在调试的时候,我们遇到的一个很麻烦的问题,就是有的时候很难看到某些参数的值。
比如当你设置了一个断点去监测一个dataset,并且想看dataset里的每个datatable的数据,这在Visual Studio 2003中,是十分麻烦的,必须在auto/locals的监视窗口中,一层层地展开去看其值。
在Visual Studio 2005中,为解决这个问题,新增加了叫"debugging visualizers" (可视化调试器)的功能,该功能可以在调试状态时,很容易方便地以各类形式,比如文本,ht ml,xml等方式查看各种参数。
在各类的监视窗口中,比如在autos,locals,watch和quickwatch 中都可以调用可视化调试器,方法是在某个需要监视的参数旁边,点击那个放大镜图标,就可以在打开的可视化调试器中看到该参数的详细情况,如下图所示:
利用可视化调试器,就可以很方便地查看比如dataset类型的数据,如下图所示:
Data Tips
在Visual Studio 2005中,在调试方面,还新增了"data tips(数据提示)"的功能。
当在调试程序期间,只需要将光标移到代码中某个需要监视的参数上,系统就会自动显示与该参数相关联的一些很有用的信息,比如相关的属性,以及当前该参数的值。
在Visual Studio 20 03中,也有该功能,但提供的信息比现在的2005少很多。
我们依然以上面"edit and continue"使用的例子来说明。
我们将断点设在MessageBox.S how这一行,F5运行程序,当在文本框输入文字并按确定按钮后,程序自动中断,这时,将光标移到textbox1.text这个位置,系统就会调用data tips功能,如下图所示显示出与text box文本框控件相关的一些属性以及这些属性此时对应的值。
在data tip的功能中,还可以继续使用edit and continue的功能,只需要在需要的地方鼠标右键就可以弹出如下图的菜单,可以编辑该值。
Exception Assistant(异常助手)
在Visual Studio .net 2003中,当程序运行出现异常时,系统会显示一个异常信息对话框,询问是否停止程序执行或继续运行程序,但并没有提供给开发者更多的关于异常的信息。
在Visual Studio .net 2005中,提供了Exception Assistant(异常助手)的新功能,可以显示丰富的关于异常方面的信息,帮助开发者调试,如下图:
在上图中,显示的是一个sqlException,是由于超时连接而造成的。
在异常助手的窗口中,显示了关于该异常的详细信息,还可以将这些信息复制到剪贴版中,当选择view detail 时,会弹出如下图所示的窗口,进一步显示关于该异常的详细信息:
Just My Code Debugging
在调试代码中,我们经常会遇到这样的问题,有时我们引用了一些其他工具包或者类库(如Microsoft提供的Enterprise Library),而在调试时,我们其实是不需要跟踪调试这些代
码的,因为它们都已经证明是正确的。
在Visual Studio 2003中,处理这类问题我们的方法一般是使用F10跳过它们,但一旦工程庞大的话,这样做十分麻烦。
在Visual Studio 2005中,新增加了Just My Code debugging(JMC)的新特性,可以让开发者自己定制哪些代码是需要调试,哪些代码是永远不需要调试的,这样可以节省大量的时间。
JMC功能由两方面来实现。
首先,如果一个工程是以release方式进行编译构建的话(就是工程中,没有pdb文件),调试器会将其认为是非用户代码,那么在调试运行时,就根本不会进入该工程中进行调试。
其次,可以使用System.Diagnostics命名空间里的DebuggerNo nUserCodeAttribute属性,将其应用在希望不进行调试的代码段中。
下面举一个例子来说明。
下面的代码段中,有两个静态方法UserCode()和NonUserCod e(),其中,在NonUserCode()中,是应用了DebuggerNonUserCode的属性,这表明这段代码将在调试运行时,调试器不会进入其中。
将断点设置在其中的第9行,运行程序,程序会在第一个UserCode()里中断,现在试着用F11继续单步跟踪,会发现系统在进入usercode()方法中运行后,并没有进入到NonUserCode()里运行。
编辑时对象识别
在Visual Studio 2005中,新引入了"Object Identity While Debugging"的概念,也就是说,系统给在调试阶段的每个对象,都可以赋予一个别名,在调试时,直接引用该别名就可以了。
假设在调试的时候,需要跟踪比如dataset或者hashtable等对象,这些对象中包含了很多其他的子对象,如果想对这些数量众多的子对象进行跟踪的话,将十分麻烦。
在Visual Studio 2005中,可以使用object identity(对象标识)的方法去标记每一个对象,
比如,在一个windows应用程序中,创建了一个dataset,并将其绑定到datagridview中去。
如将sql server 的northwind数据库中的orders和orderdetail表中的数据读出填充到dat aset里去,则在调试时,设置一个断点放在dataset里填充了数据之后的那行,这时,在监视窗口中,鼠标展开this.northwindData这个dataset,如下图所示,找到orders这个table,然后鼠标右键,会弹出一个菜单,选择其中的" Make Object ID".
这时,会将orders这个参数以1#的别名方式命名(见下图),并且在整个应用程序中,只要在dataset的生存期,都可以以1#的方式访问它。
下图的代码演示了如何在immediate监视窗口中,通过使用object 标识,查看某一个表中所有记录的方法。
要注意的是,必须将其显式类型转换为DataApp.NorthwidDataSet.Order sDataTable。
通过使用object 标识的好处是,可以在调试阶段,不需要在描述某个参数时,再用冗余的命名方法表示了(比如可以用#1来代替this.NorthwidDataSet.Orders)
小结
在Visual Studio 2005中,在调试方面,增加了大量的方便实用的新特性,可以大大提高程序员调试的效率。
除了本文提到的新特性外,Visual Studio 2005还可以搭配sql server 2005调试存储过程等,这将在稍侯的文章中做介绍。