VS的10个调试技巧

VS的10个调试技巧
VS的10个调试技巧

Visual Studio原生开发的10个调试技巧

最近碰巧读了Ivan Shcherbakov写的一篇文章,《11个强大的Visual Studio调试小技巧》。

这篇文章只介绍了一些有关Visual Studio的基本调试技巧,但是还有其他一些同样有用的技巧。我整理了一些Visual Studio(至少在VS 2008下)原生开发的调试技巧。(如果你是工作在托管代码下,调试器会有更多的特性,在CodeProject中有介绍它们的文章),下面是我的整理的一些技巧:

1. 异常中断| Break on Exception

2. Watch窗口中的伪变量| Pseudo-variables in Watch Windows

3. 符号越界后查看堆对象|

4. 查看数组的值

5. 避免进入不必要的函数

6. 从代码启动调试器| Launch the debugger from code

7. 在Output窗口打印

8. 隔离内存泄漏

9. 调试发行版| Debug the Release Build

10. 远程调试

技巧1:异常中断

在处理被调用之前,异常发生时可以启动调试器进行中断,可以让你在异常发生后立即调试程序。操作调用栈便于你去查找异常发生的根本原因。

Vistual Studio允许你去指定想要中断的异常类型或者特殊异常。选择菜单

Debug>Exceptions弹出对话框,你可以指定原生的(或者托管的)异常,除了调试器自带的一些默认异常,你还可以添加自己的自定义异常。

下面是一个std::exception 异常抛出时调试器中断的例子。

?1.异常抛出时如何中断

?2.如何添加新的异常

技巧2:Watch窗口中的伪变量

Watch窗口或QuickWatch对话框提供一些特定的(调试器可识别的)变量,被称为伪变量。

文档包含以下:

?$tid—–当前线程的线程ID

?$pid——进程ID

?$cmdline———-启动程序的命令行字符串

?$user———-正在运行程序的账户信息

?$registername—–显示寄存器registername 的内容

不管怎么样,关于最后一个错误的伪变量是非常有用的:

?$err——–显示最后一个错误的错误码

?$err,hr—显示最后一个错误的错误信息

技巧3:符合越界后查看堆对象

有时候,在调试符号越界后,你还想查看对象的值,这个时候,watch窗口中的变量是被禁用的,不能再查看(也不能更新),尽管对象仍然存在。你如果知道对象的地址,可以继续充分地观察它。你可以将地址转换为该对象类型的指针,放在watch窗中。

下面的例子中,当单步跳出do_foo()之后,_foo不能再被访问。但是,将它的地址转换为foo*后,就可以继续观察这个对象。

技巧4:查看数组的值

如果你在操作一个很大的数组(我们假设至少有几百个元素吧,但是可能更少),在Watch窗口中展开数组,查找一些特定范围内的元素很麻烦,因为你要不停地滚动.如果数组是分配在堆上的话,你甚至不能在watch窗口中展开数组元素.对此,有一个解决办法。你可以使用(array+ ), 去查看从位置开始的特定范围的元素(当然,这儿的数组是你的实际对象)。如果想查看整个数组,可以简单使用array,.

如果你的数组是在堆上,你可以在watch窗口中将它展开,但是要查看某个特定范围的值,用法稍有不同:((T*) array + ),(注意这种用法对于堆上的多维数组也有效)。但是这种情况下,T是指数组元素的类型。

如果你在用MFC,并使用其中的’array’容器,像CArray, CDWordArray,CStringArray等等。你当然可以使用同样的过滤方法。除此之外,你必须查看array的m_pData成员,它是保存数据的真实缓存。

技巧5:避免进入不必要的函数

很多时候,你在调试代码时可能会进入到你想跳过的函数,像构造函数,赋值操作或者其他的。其中最困扰我的是CString构造函数。下面是一个例子,当你准备单步执行take_a_string()函数时,首先进入到CString的构造函数。

1 2 3 4 5 6 7 8void take_a_string(CString const&text) {

}

void test_string()

{

take_a_string(_T("sample"));

}

幸运的是可以告诉调试器去跳过哪些方法,类或者整个命名空间。实现它的方法也已经改变了,回到使用VS6的日子,通常是通过autoexp.dat文件来指定的。Vistual Studio 2002改成了使用注册表设置。想要跳过一些函数,你需要在注册表里添加一些值(详情如下):

1. 实际位置取决于你使用的Vistual Studio版本和操作系统平台(x86或x64,因为注

册表只能在64位的Windows下浏览)

2. 值的名字是数字,代表规则的优先级;数字越大,优先级越高。

3. 值数据是一个正则表达式的REG_SZ值,用于指定怎样过滤和执行。

为了避免进入任何CString方法,我添加了下面的规则:

有了这个,即使你强制进入上例中的take_a_string(),调试器也会跳过CString的构造函数。

技巧6:从代码启动调试器 Launch the debugger from code

你可能很少需要将调试器附加到程序中,但你不能在Attach窗口这样做(可能因为中断发生太快而没有捕获到),你也不能一开始就在调试器中启动程序。你可以在程序中产生中断给调试器一个机会通过调用内部的_degbugbreak()来附加。

1 2 3 void break_for_debugging() {

__debugbreak();

4}

实际上还有其他的方法来完成,例如触发中断3,但这仅仅适用于x86平台(C++64位不再支持ASM)。另外还有DebugBreak()函数,但它的使用不怎么简便,所以这里推荐使用内部方法。

1__asm int3;

程序运行内部方法时会停止运行,这时你就有机会将调试器附加到该进程。

技巧7:在output窗口打印

通过调用DebugOutputString可以在调试器的output窗口显示一段特定的文本。如果没有附加的调试器,该函数什么也不做。

技巧8:隔离内存泄漏

内存泄漏是在原生开发中的一个很重要的问题,要检测内存泄漏是一个很严峻的挑战,尤其是在大型项目中。Vistual Studio可以提供检测内存泄漏的报告,还有其他的一些应用程序(免费的或商业的)也可以帮助你检测内存泄漏.有些情况下,在一些内存分配最终会导致泄漏时,可以使用调试器去中断。但是你必须找到可再现的分配编号(尽管没那么容易)。如果能做到这一点,执行程序时调试器才会中断。

我们来看下面的代码,分配了8个字节,却一直没释放分配的内存。Visual Studio提供了造成内存泄漏的对象的报告,多运行几次,会发现一直是同一个分配编号(341)。

1 2 void leak_some_memory() {

3 4 5 6 7 8 9 char* buffer = new char[8];

}

Dumping objects ->

d:\marius\vc++\debuggingdemos\debuggingdemos.cpp(103) : {341} normal block at 0x00F7 long.

Data: < > CD CD CD CD CD CD CD CD

Object dump complete.

在一个特定的(可复现的)位置中断的步骤如下:

1. 确定你有足够的关于内存泄漏的报告模式(参考使用CRT库检测内存泄漏)

2. 多次运行程序直到你能在程序运行结束后的内存泄漏报告里找到一个可复现的分配

编号,例如上个例子中的(341)

3. 在程序一开始的地方设置一个断点以便你能够尽早地进行中断。

4. 当最初的中断发生时,watch窗口的Name栏里会显示:

{,,msvcr90d.dll}_crtBreakAlloc,在Value栏里写入你想要查找的位置编号

5. 继续调试(F5)

6. 程序执行到指定位置会停止,你可以使用调用栈被指引找到被该位置触发的那段代

码。

遵循这些步骤,在上个例子中,使用分配的编号(341)就可以识别内存泄漏的起因。

技巧9:调试发行版

调试和发布是两个不同的目的。调试配置是用于开发的,而发布配置,顾名思义,是用来作为程序的最终版本,因为它必须严格遵循发布的质量要求,该配置包含优化部分和调试版本的中断调试的设置。而且,有时候,要像调试调试版本一样去调试发行版。要做到这一点,

你需要在配置里做一些改变。但是这种情况下,你就不再是在调试发行版,而是调试和发行的混合版。

你还应该做一些事儿,以下是必须要做的:

1. 配置C/C++ >General>Debug Information Format 应该为―Program

Database(/Zi)‖

2. 配置C/C++ >Optimization>Optimization 应该为‖Disabld(/Od)‖

3. 配置Linker>Debugging>Generate Debug Info 应该为‖Yes/(DEBUG)‖

如图所示:

技巧10:远程调试

另一个重要的调试就是远程调试,这是一个更大的话题,多次被提到,这里我只做一下简单的概括:

1. 你需要在远程机器上安装远程调试监控

2. 远程调试监控必须以管理员身份运行,并且用户必须属于管理员组

3. 在你运行监控时,会开启一个新的服务,该服务的名字必须用Visual Studio的Attach

to Progress窗口的Qualifier组合框的值。

1. 远程和本地机器上的防火墙必须允许Visual Studio和远程调试监控之间能够通信

2. 想要调试,PDB文件是关键;为了能够让VisualStudio自动加载它们,必须满足以

下条件:

1)本地的PDB文件必须可用(在远程机器的相同路径下放置一个对应的模块)。

2) 远程机器上的托管PDB文化必须可用。

远程调试监控下载:

?Visual Studio 2008 Service Pack 1 Remote Debugger

?Microsoft Visual Studio 2010 Remote Debugger

结束语

Ivan Shcherbakov那篇文章和我这篇文章提到的调试技巧,在大多数的调试问题中都是必不可少的。想要知道更多的关于调试技巧的知识,建议阅读文章中提供的额外阅读。

在此操作实例中,您将了解如何在本地计算机和 Microsoft Windows HPC Server 2008 群集上设置和启动 MPI 群集调试程序会话。此操作实例包括使用消息传递界面 (MPI) 和打开多进程 (OpenMP) 应用程序编程界面 (API) 创建应用程序所需的步骤和示例代码。本指南内容:使用 MPI 群集调试程序的要求在 Visual Studio 2010 中创建 C++ MPI 示例项目配置和启动 MPI 群集调试程序附录:除应用程序二进制外,Visual Studio 部署的文件和 CRT (如果要求)使用 MPI 群集调试程序的要求您的开发计算机上必须安装了 Visual Studio 2010 Professional Edition 或更高版本(包括远程调试程序)。您必须在群集上拥有管理权限。 Visual Studio 必须能够访问要运行调试会话的计算节点。以下方案提供了所需的访问权限:您在群集头节点或专用登录节点上开发应用程序。所使用群集的计算节点被连接到企业网络(拓扑 2、4 或 5),并且您的开发计算机连接到了相同的域或是与群集域有信任关系的域。要从客户端计算机将应用程序提交到 HPC 群集,您必须安装了 Microsoft HPC Pack 2008。要使用 Microsoft 消息传递界面构建 MPI 程序,需要在开发计算机上安装Windows HPC Server 2008 SDK。在 Visual Studio 2010 中创建 C++ MPI 示例项目本部分的示例代码用于一个使用 Monte Carlo 模拟估算 Pi 值的并行应用程序。示例代码在每个 MPI 进程上运行 50,000,000 次迭代计算。在每次迭代计算中,示例代码都生成间隔为[0,1] 的随机数字以确定一组 x 和 y 坐标。然后评估坐标组以确定点是否位于行 x2 + y2 = 1 下。如果点位于该行下,则变量 count 将加一。每个 MPI 的值 count 的总和将成为变量result。将位于行 (result) 下的总点数乘以四,然后再用所乘的结果除以总迭代计算次数以估算 Pi 值。以下步骤包含 Monte Carlo 模拟的两个实现。第一个示例使用的是 MPI 和 OpenMP。有关 OpenMP 的详细信息,请参阅 OpenMP in Visual C++。第二个示例使用的是 MPI 和并行格式库 (PPL)。有关 PPL 的详细信息,请参阅 Parallel Patterns Library (PLL)。创建示例项目的步骤运行 Visual Studio 2010。创建一个名为 ParallelPI 的新 C++ Win32 控制台应用程序。使用一个无预编译头的项目。在“文件”菜单上,指向“新建”,然后单击“项目”。在“新建项目”对话框中,单击“已安装的模板”,然后选择“Visual C++”。(根据 Visual Studio 的设置方式,“Visual C++”可能位于“其他语言”节点下。)在模板列表中,单击“Win32 控制台应用程序”。关于项目名称,请键入:ParallelPI. 单击“确定”。此操作将打开“Win32 控制台应用程序”向导。单击“下一步”。在“应用程序设置”中的“其他选项”下,清除“预编译头”复选框。单击“结束”以关闭向导并创建项目。指定此项目的其他属性。在“解决方案资源管理器”中,右键单击 Parallel PI,然后单击“属性”。此操作将打开“属性页”对话框。展开“配置属性”,然后选择“VC++ 目录”。在“包含目录”中,将指针指到文本框中显示的列表的开头,然后指定 MS MPI C 标头文件的位置,随后添加英文分号 (;)。例如: C:\Program Files\Microsoft HPC Pack 2008 SDK\Include; 在“库目录”中,将指针指到文本框中显示的列表的开头,然后指定 Microsoft HPC Pack 2008 SDK 库文件的位置,随后添加英文分号 (;)。例如,如果您要构建和调试 32 位应用程序: C:\Program Files\Microsoft HPC Pack 2008 SDK\Lib\i386; 如果您要构建和调试 64 位应用程序: C:\Program Files\Microsoft HPC Pack 2008 SDK\Lib\amd64; 在“链接器”下,选择“输入”。在“附加依赖关系”中,将指针指到文本框中显示的列表开头,然后键入: msmpi.lib; 如果您使用的是 OpenMP 代码示例:在“配置属性”中展开“C/C++”,然后选择“语言”。在“打开 MP 支持”中,选择“是(/openmp)”以启用编译器对 OpenMP 的支持。单击“确定”关闭属性页。在主要源文件中,选择全部代码,然后将其删除。将以下示例代码之一粘贴到空的源文件中。第一个示例使用的是 MPI 和 OpenMP,第二个示例使用的是 MPI 和并行格式库 (PPL)。以下代码示例使用的是 MPI 和 OpenMP。函数 ThrowDarts 使用 OpenMP 并行 for 循环,以利用多核硬件(如果可用)。 // ParallelPI.cpp : Defines the entry point for the MPI application. // #include

VS2010中的调试技巧 用F9 添加需要监视的行的断点,然后F10进入逐步调试状态,遇到方法需要进入方法的,按下F11进行 我经常看到人们为了到达目标代码位置,而在程序中早早设定了断点,然后反复地按 F10/F11,一步步走到目标代码处。当程序员的确需要仔细观察每一步的状态变化时, F10/F11是合理的选择。然而多数情况下,人们只想快速到达他们真正关心的代码处,这时候F10/F11就不是最佳选择了。 这时,你应该利用―跳到当前光标处‖这个功能。先把光标定位在要测的目标代码行上,再同时按Ctrl和F10,被测程序将直接跳到该行停下。你再也不用按许多次F10/F11了。即使目标代码位于独立的类或方法中,你仍然可以从当前正在检查的地方跳过去。 条件中断 另一种常见的情况是:开发人员设置断点,运行程序,利用不同的输入触发断点,然后在断点处手工检查是否满足某些特定的条件,从而决定是否继续调查。如果当前场景不是他们想要的,按F5继续运行程序,尝试别的输入,手动重复刚才的过程。 针对上述情况,Visual Studio提供了一个方便得多的功能——―条件中断‖。只有当程序满足了开发人员预设的条件后,条件断点才会被触发,调试器中断。这将避免频繁地手工检查/恢复程序运行,大量减少调试过程中的手工和烦琐工作。 如何设置条件断点 设置条件断点非常容易。在特定的行上,按F9设置断点。 然后右击断点–编辑窗口左侧的红点,在上下文菜单上选择―Condition…‖。

这时弹出一个对话框供你设置激活该断点所需的条件。比如:我们希望只有当局部变量paginatedDinners的尺寸小于10时,调试才中断。我们可以写出如下的表达式: 现在我再运行这个程序,实现搜索,只有返回值小于10时,程序运行才会被中断。对于大于10的值,该断点将被跳过。 记录到达断点次数 有时你希望,只有当第N次满足条件的运行到达断点时,才中断程序运行。例如:当第五次返回少于10份晚餐的查询结果时,中断程序运行。 可以通过右击断点,然后在弹出菜单上选择―Hit count…‖菜单命令实现。

第一章关于Visual Studio、VC和C++的那些事 第二章安装、配置和首次使用VS2010 本章将帮助大家安装Visual C++ 2010,帮助大家做一些常见的配置,以及第一次使用它来写HelloWord程序。 安装 Visual C++ 2010是属于Visual Studio 2010的一部分,这个在前一章中已经讲解过,实际上Visual C++ 2010也有更多的子版本,正如Windows7有旗舰版、家庭高级版、家庭初级版一样。在上一章的下载地址中有两个版本可以选择,我选择的时候旗舰版,这个功能最全面。 如果你下载完毕了,应该有一个ISO镜像文件,如果你是从我给的地址下载的,那么那个序列号已经被替换成正版序列号,直接安装即可。下面是ISO文件截图: 这就是光盘镜像文件,我们有多种方式可以安装它,你可以把它烧录成光盘,也可以用虚拟光驱软件安装它,由于这个ISO已经被修改过了,你甚至可以直接解压它,然后运行里面的setup.exe进行安装。 这里我使用虚拟光驱进行说明,首先我假设你已经安装好了虚拟光驱软件DAEMON Tools Lite,如果你还没有安装,请去游侠补丁网下载,因为在那里你总是能找到最新的免费版本。 接下来我们通过虚拟光驱加载刚才下载好的ISO镜像:

在弹出的对话框中选择我们下载好的ISO 文件。这个时候,虚拟光驱里面已经替我们打开了ISO 文件,有的机器可能会自动弹出安装提示,有的不会。如果自动弹出安装提示,那么直接通过即可,如果没有弹出,那么用资源管理器方式进入虚拟光驱点击Setup.exe 即可开始安装。

由于我已经安装好了VS2010,所以接下来无法给大家截图了,我就直接用文字描述吧。 当弹出VS2010安装程序之后点下一步,然后我们可能会看到完全最小自定义这样的选项,我推荐大家选择自定义,因为只有这样我们才可以自定我们安装的目录。接下来会选择安装的组件。这个时候我们会看到大量的VS2010的组件,这里我们可以选择是否安装Basic是否安装C#等等,我在网上找到一些图片,虽然跟中文版2010不一样,大家大概的样子是一样的,大家就凑合着看看吧。 下面是开始的界面,我们应该选择安装VS2010.

1、先将WebDev.WebServer20.EXE和WebDev.WebServer40.EXE文件从Program Files (x86)目录中拷贝出来放到c:\dev目录中叶海青叶海青叶海青 2、开始->运行->cmd ,在命令行窗口输入: "C:\dev\WebDev.WebServer20.EXE" /port:5970 /path:"D:\WebSite" /vpath:"/" 该命令执行启动web调试服务器 注意上方的path和vpath分别表示: path:项目文件所在路径 vpath:虚拟目录名称 port:调试端口号(可以自行设置) 3、在web项目上右键->属性,在web选项卡中的“服务器”中“使用自定web服务器”,将服务器url 设置为:http://localhost:5970 4、然后在指定页面中打断点调试; 1、先将WebDev.WebServer20.EXE和WebDev.WebServer40.EXE文件从Program Files (x86)目录中拷贝出来放到c:\dev目录中叶海青叶海青叶海青 2、开始->运行->cmd ,在命令行窗口输入: "C:\dev\WebDev.WebServer20.EXE" /port:5970 /path:"D:\WebSite" /vpath:"/" 该命令执行启动web调试服务器 注意上方的path和vpath分别表示: path:项目文件所在路径 vpath:虚拟目录名称 port:调试端口号(可以自行设置) 3、在web项目上右键->属性,在web选项卡中的“服务器”中“使用自定web服务器”,将服务器url 设置为:http://localhost:5970 4、然后在指定页面中打断点调试;

如何使用VS2010调试程序 隋清宇 2010.11.7 在之前的课程中,很多同学向我们反映,不知道如何使用VS2010调试自己的程序。还有一些同学交上来的程序,带了stdafx等VS自动生成的库文件。所以,我有必要在这里简单地讲一下如何使用VS2010编写及调试自己的代码。 关于VS2010如何安装的问题,想必同学们已经都很清楚了,这里就不再赘述。如果有使用Code::Blocks或DevC++等IDE的同学,具体操作和VS2010其实相差并不大,但是在选项或菜单的名称以及快捷键上会有所不同,我在文章中会尽量提到各个操作的英文名称,可以自己参考着尝试摸索一下。 文章中有下划线的词语都是截图中提到的选项,方便同学们对照。 一、建立工程 首先,我们需要在VS2010中建立一个工程(Project),这样才可以对我们的代码进行编译(Compile)、调试(Debug)、生成(Build)等操作。 先在文件菜单选择新建,然后选择项目。 在打开的对话框中,于左侧选择Visual C++,右侧选择空项目(Empty Project)。然后在下面输入想要储存这个工程的位置和给这个工程起的名称。可能你可以选择的项目和我不一样,这些都无妨,只要可以找到Visual C++和空项目就可以了。 需要注意的是,因为我们没有必要为一次作业的代码建立一个解决方案,所以一般情况下,为解决方案创建目录的复选框不勾选就可以了。 在例子中,我选择的存储位置为D:\example\,工程名为myProg1。当工程创建完成的时候,你会发现D:\example\下会多了一个文件夹D:\example\myProg1\(请注意工程名和存储位置的关系),而你这个工程的所有文件都在那个文件夹下。 另外,有同学在创建工程的时候选择了Win32控制台应用程序,这样会导致VS2010生成一些对于我们没有任何用处的代码和文件(比如上文中提到的stdafx),强烈不建议选择此项(但是Code::Blocks需要选择Console Application项建立工程)。

实验一VS2010开发环境及C#基本编程 1.1 C#集成环境使用 一、实验目的 1.熟悉Visual C#.NET集成开发环境。 2.掌握控制台应用程序的开发方法。 3.掌握Windows应用程序的开发方法。 二、实验要求 1. 整理上机步骤,总结经验和体会。 2. 完成实验日志和上交程序。 三、实验内容 题目一:创建控制台应用程序 (1)选择“开始”“程序”“Microsoft Visual Studio 2010”“Microsoft Visual Studio 2010” 命令,启动Visual Studio 2010,并仔细观察起始页的内容。 (2)选择“文件”“新建”“项目”命令,弹出“新建项目”对话框。仔细观察对话框的内容。在“项目类型”列表框中选中Visual C#选项;在“模板”列表框中选中“控制台应用程序”选项;在“名 称”文本框中输入项目名称;在“位置”文本框中输入或选择项目的保存位置。单击“确定”按钮, 将显示控制台应用程序代码编辑窗口,在该窗口内显示系统自动生成的相应代码。仔细观察并 分析这些代码。 (3)在代码编辑窗口内的Main()方法中添加如下代码: Console.Write("当前系统的日期为:"); //将系统的日期转换为长日期字符串表示形式进行输出 Console.WriteLine(DateTime.Now.ToLongDateString()); Console.Read(); (4)选择“文件”“全部保存”命令,保存项目。 (5)选择“调试”“开始执行(不调试)”命令或按【Ctrl+F5】组合键运行程序,并观察运行情况。 (6)在项目的保存位置处查看项目中过的所有文件。 题目二:创建Windows应用程序 (1)从开始菜单启动Visual Studio 2010。 (2)选择“文件”“新建”“项目”命令,弹出“新建项目”对话框。在“项目类型”列表框中选中Visual C#选项;在“模板”列表框中选中“Windows应用程序”选项;在“名称”文本框中输入项目 名称;在“位置”文本框中输入或选择项目的保存位置。单击“确定”按钮,将显示窗口设计器窗 口。 (3)切换到“属性”窗口、“解决方案资源管理器”窗口和“类视图”窗口,查看窗体的属性、项目的组成结构以及项目所设计的所有类。 (4)双击打开“解决方案资源管理器”窗口中的各个文件,在代码编辑器窗口内查看系统自动生成的与该项目有关的代码。 (5)选择“调试”“启动调试”命令,运行程序,查看运行结果,然后关闭窗体。 (6)在窗体上添加一个PictureBox控件和两个Button控件。设置窗体和各控件的属性,如表1-1所示。

vs2010下调用matlab2012b调试方法 配置环境: vs2010+matlab2012b+win7 64位 说明: 以安装路径“E:\Program Files\MATLAB\R2012b\”为例MATLAB外部支持文件夹: E:\Program Files\MATLAB\R2012b\extern matlab自带的c例程: E:\Program Files\MATLAB\R2012b\extern\examples\eng_matengine.h的位置: E:\Program Files\MATLAB\R2012b\extern\include各种lib的位置: E:\Program Files\MATLAB\R2012b\extern\lib\win64\microsoft 在matlab帮助中输入“C language”即可找到有关MATLAB Engine的一个页面。

从这个页面开始,学习各种关键词, 就能够找到一切你需要的资料。使用MATLAB Engine一般用两套函数就可以了。 1.engXXXX,关于Engine本身的操作,包括打开/关闭,设置/取得变量,执行语句等等。 2.mxXXXX,关于数据类型mxArray的操作,与MATLAB 交互的左右类型全部为mxArray。搭建过程:1.先在VC6的tools->options->directories里添加相关目录include files: E:\Program Files\MATLAB\R2012b\extern\include E:\Program Files\MATLAB\R2012b\extern\include\win64library files: E:\Program Files\MATLAB\R2012b\extern\lib\win64\microsoft2 点击LInker input 将libmx.lib;libmex.lib;libeng.lib;加入到Additional Dependencies

设置断点:在如下图中的红色圆点处设置断点,红色圆点表示已经在这行设置断点。快捷键F9。 启动调试:按F5或者点击左边红框中的按钮。右边框是开始执行(不调试)Ctrl+F5。 调试工具栏:下面是工具栏中对应的名称和快捷键。 在调试过程中F5是执行到下一个断点。F11是逐语句,在执行到下图中的断点时,按F11会执行到Fibonacci方法里面逐步记录执行过程。F10是逐过程,与逐语句不同的是,在执行到下图中断点时,再执行会执行断点下面的语句,而不是去执行语句中的方法。 局部变量:在调试过程中可以查看局部变量窗口,如下图里面会有变量的当前状态。如果找不到的话在

数组的状态表示如下图: InteliTrace记录每一步的调试状态。

条件中断 开发人员设置断点,运行程序,利用不同的输入触发断点,然后在断点处手工检查是否满足某些特定的条件,从而决定是否继续调查。如果当前场景不是他们想要的,按F5继续运行程序,尝试别的输入,手动重复刚才的过程。 针对上述情况,Visual Studio提供了一个方便得多的功能——“条件中断”。只有当程序满足了开发人员预设的条件后,条件断点才会被触发,调试器中断。这将避免频繁地手工检查/恢复程序运行,大量减少调试过程中的手工和烦琐工作。 如何设置条件断点: 设置条件断点非常容易。在特定的行上,按F9设置断点。

然后右击断点–编辑窗口左侧的红点,在上下文菜单上选择“条件”。 这时弹出一个对话框供你设置激活该断点所需的条件。比如:我们希望只有当x==5时,调试才中断。我们可以写出如下的表达式: 现在我再运行这个程序按F5达到条件断点,只有当x等于5时,程序运行才会被中断。对于其它条件下的x值,断点将被跳过。 记录到达断点次数 有时你希望,只有当第N次满足条件的运行到达断点时,才中断程序运行。例如:当第一次命中断点。可以通过右击断点,然后在弹出菜单上选择“命中次数”菜单命令实现。 这时系统弹出一个对话框,它允许你指定:(1)当满足条件,而且进入断点的累计次数等于N时,断点命中一次。(2)当满足条件,而且进入断点的累计次数是N的倍数时,断点命中一次。(3)当满足条件,而且进入断点的累计次数大于N时,每次命中断点。

VS2010中的调试技巧 跳到当前光标处(Ctrl+F10) 我经常看到人们为了到达目标代码位置,而在程序中早早设定了断点,然后反复地按 F10/F11,一步步走到目标代码处。当程序员的确需要仔细观察每一步的状态变化时, F10/F11是合理的选择。然而多数情况下,人们只想快速到达他们真正关心的代码处,这时候F10/F11就不是最佳选择了。 这时,你应该利用―跳到当前光标处‖这个功能。先把光标定位在要测的目标代码行上,再同时按Ctrl和F10,被测程序将直接跳到该行停下。你再也不用按许多次F10/F11了。即使目标代码位于独立的类或方法中,你仍然可以从当前正在检查的地方跳过去。 条件中断 另一种常见的情况是:开发人员设置断点,运行程序,利用不同的输入触发断点,然后在断点处手工检查是否满足某些特定的条件,从而决定是否继续调查。如果当前场景不是他们想要的,按F5继续运行程序,尝试别的输入,手动重复刚才的过程。 针对上述情况,Visual Studi o提供了一个方便得多的功能——―条件中断‖。只有当程序满足了开发人员预设的条件后,条件断点才会被触发,调试器中断。这将避免频繁地手工检查/恢复程序运行,大量减少调试过程中的手工和烦琐工作。 如何设置条件断点 设置条件断点非常容易。在特定的行上,按F9设置断点。

然后右击断点–编辑窗口左侧的红点,在上下文菜单上选择―Condition…‖。 这时弹出一个对话框供你设置激活该断点所需的条件。比如:我们希望只有当局部变量paginatedDinners的尺寸小于10时,调试才中断。我们可以写出如下的表达式: 现在我再运行这个程序,实现搜索,只有返回值小于10时,程序运行才会被中断。对于大于10的值,该断点将被跳过。 记录到达断点次数

VS2010 调试利器 一、通过VS2010可以将断点保存成本地文件(xml格式) 假设当代码中有CRUD(增、删、改、查)功能时,我们debug增加功能时在代码内设置了一个断点进行查错。再检查删除时又要为删除代码设置一个断点并且要清除上一个为debug增加功能时设置的断点。在VS2010之前我们似乎常常这样做,但现在通过VS2010我们可以将断点保存起来!其实也就是可以为所有断点设置一个解决方案。下次需要debug的时候直接导入先前导出的断点解决方案(xmL文件)。具体请参看下 图:

鼠标停留的按钮就是导出功能键(VS2010->Debug->Windows->Breakpoints)右边就是导入断点按钮。 二、调试数据提示(DataTip) 提到这个功能,只能用更加强大来形容了。大家在debug一段复杂代码时,常常会用鼠标停留在一个变量上修改该变量的值,进行debug。当然这个功能VS2008早就具备了。那如何让debug 时的数据提示(DataTip)更方便的显示呢?请看下图: 将鼠标停留在arrTechnology[i]这个对象上,然后弹出提示框如上图,接着点击提示框的最右边的箭头:

这样就可以让提示框悬停在我们的编码区域内,点击菜单叉号,就可以移除datatip,点击双向下双箭头就可以为datatip加入注释: datatip右侧菜单的一头一尾的按钮都介绍过了,中间的"pin"按钮功能就更强大了。如果点击“pin”图标可以让我们设置好的datatip悬停在整个VS2010的所有编码文件内。具体请看下图:我们在Program.cs工作区域内可以见到datatip。

VS2010快捷键设置 1.进入工具----选项对话框 2.选择环境---->键盘 3. 在【显示命令包含】下面的对话框中输入“对齐”关键字,然后就会在这个编辑框下面一个文本窗口中显示关于“对齐”一系列的“某某对齐”操作命令,选中你想查看的,就会在【选定命令的快捷键】一栏中显示其快捷键了,也可以输入其他的文字,比如说“在浏览器中查看”、“注释选择内容”等。 VS2010快捷键 CTRL + K, CTRL + C注释选择的代码 CTRL + K, CTRL + U取消对选择代码的注释 Ctrl+K, CTRL+ F ----格式化选中的代码 CTRL + SHIFT + B生成解决方案 CTRL + F7 生成编译 CTRL + O 打开文件 CTRL + SHIFT + O打开项目 CTRL + SHIFT + C显示类视图窗口 F4 显示属性窗口 SHIFT + F4显示项目属性窗口 CTRL + SHIFT + E显示资源视图 F12 转到定义 CTRL + F12转到声明 CTRL + ALT + J对象浏览 CTRL + ALT + F1帮助目录 CTRL + F1 动态帮助 F1 帮助 SHIFT + F1当前窗口帮助 CTRL + ALT + F3帮助-搜索

SHIFT + ALT + ENTER全屏显示 CTRL + -向后定位 CTRL + SHIFT + -向前定位 CTRL + F4关闭文档窗口 CTRL + PAGE DOWN光标定位到窗口上方CTRL + PAGE UP光标定位到窗口下方 CTRL + F6 CTRL + TAB下一个文档窗口 CTRL + SHIFT + F6 CTRL + SHIFT + TAB上一个文档窗口 ALT + F6下一个面板窗口 CTRL + K, CTRL + L取消remark CTRL + K, CTRL + C注释选择的代码 CTRL + K, CTRL + U取消对选择代码的注释CTRL + M, CTRL + O折叠代码定义 CTRL + M, CTRL + L展开代码定义 CTRL + DELETE删除至词尾 CTRL + BACKSPACE删除至词头 SHIFT + TAB取消制表符 CTRL + U转小写 CTRL + SHIFT + U转大写 CTRL + SHIFT + END选择至文档末尾 CTRL + SHIFT + HOME选择至文档末尾开始SHIFT + END选择至行尾 SHIFT + HOME选择至行开始处

在我还在上学的时候,我选择了C++,最初我用VC6作为我的IDE,我看过很多本C++的教材,有的适合我,有的不适合我,其中有一本叫《Visual C++ 2005入门经典》的书帮了我不少的忙。因为通常的C++教材都只会介绍C++的语法什么的,很少会告诉我们如何去编译、运行,告诉我们什么是控制台程序,什么事Win程序,什么是GUI程序,C++能干什么,VC和C++的区别是什么。现在有很多的朋友应该也有这些问题吧? 学C++用C++也有几年了,算不上熟悉,算是初窥门径吧,我想我应该做点什么帮助一下那些和曾经的我一样困惑的朋友,特别是学生朋友,告诉他们他们所困惑的问题的答案。记得我学C++的时候,没有人教,有的时候也走了不少弯路,甚至连调试也不会,也不知道可以通过看调用堆栈看调用次序,还自己慢慢的去搜索,好傻啊。 接下来我会做一个《Visual C++ 2010入门教程》系列,用来帮助初学者。刚开始学的时候是很痛苦的,这个我深有体会,特别是身边还没有人能够指导一二的。内容主要涵盖在Windows下面使用C++进行开发的常见内容,Visual Studio 2010的使用,如何创建新项目,如何调试,如果配置项目属性等等,另外还会介绍Visual C++ 2010中新加如的一些内容,包括一些新的STL组建,一些新的语法支持等等。 由于本人水平有限,其中难免有错误,希望大家谅解,如果大家有发现问题还请务必及时指出来,否则误导了他人我就罪不容恕了。 注意,本教程非C++教程,不会教你C++,只会教你如何使用 Visual C++ 2010去练习去学习其它C++教材上面的程序。因此建议大家认真的去看其他的C++教程,在使用Visual C++ 2010实践的时候如果遇到问题可以到这里来参考。推荐《C++ Primer》、《C++程序设计语言》《Visual C++ 2008入门经典》。 第一章关于Visual Studio、VC和C++的那些事 第二章安装、配置和首次使用VS2010 本章将帮助大家安装Visual C++ 2010,帮助大家做一些常见的配置,以及第一次使用它来写HelloWord程序。

写在前面 在我还在上学的时候,我选择了C++,最初我用VC6作为我的IDE,我看过很多本C++的教材,有的适合我,有的不适合我,其中有一本叫《Visual C++ 2005入门经典》的书帮了我不少的忙。因为通常的C++教材都只会介绍C++的语法什么的,很少会告诉我们如何去编译、运行,告诉我们什么是控制台程序,什么事Win程序,什么是GUI程序,C++能干什么,VC和C++的区别是什么。现在有很多的朋友应该也有这些问题吧? 学C++用C++也有几年了,算不上熟悉,算是初窥门径吧,我想我应该做点什么帮助一下那些和曾经的我一样困惑的朋友,特别是学生朋友,告诉他们他们所困惑的问题的答案。记得我学C++的时候,没有人教,有的时候也走了不少弯路,甚至连调试也不会,也不知道可以通过看调用堆栈看调用次序,还自己慢慢的去搜索,好傻啊。 接下来我会做一个《Visual C++ 2010入门教程》系列,用来帮助初学者。刚开始学的时候是很痛苦的,这个我深有体会,特别是身边还没有人能够指导一二的。内容主要涵盖在Windows下面使用C++进行开发的常见内容,Visual Studio 2010的使用,如何创建新项目,如何调试,如果配置项目属性等等,另外还会介绍Visual C++ 2010中新加如的一些内容,包括一些新的STL组建,一些新的语法支持等等。 由于本人水平有限,其中难免有错误,希望大家谅解,如果大家有发现问题还请务必及时指出来,否则误导了他人我就罪不容恕了。 注意,本教程非C++教程,不会教你C++,只会教你如何使用Visual C++ 2010去练习去学习其它C++教材上面的程序。因此建议大家认真的去看其他的C++教程,在使用Visual C++ 2010实践的时候如果遇到问题可以到这里来参考。推荐《C++ Primer》、《C++程序设计语言》《Visual C++ 2008入门经典》。 第一章:关于Visual Studio、VC和C++的那些事 首先,这三个东西有什么区别呢?VC和C++是相同的吗,有什么区别呢?我刚开始学C++的时候也有这样的问题,在这里我来替大家解释一下他们到底是什么。 Visual Studio,我们一般都简称为VS,VC全称是Visual C++,C++就不用解释了吧?Visual Studio其实是微软开发的一套工具集,它由各种各样的工具组成,这就好像Office 2007是由Word

vc断点调试~~~~快捷键 调试.应用代码更改Alt + F10 应用代码更改但不停止调试模式。有关更多信息,请参见编 辑并继续。 调试.自动窗口Ctrl + Alt + V,A显示“自动”窗口,以查看当前过程内当前执行行范围中的 当前变量的值。有关更多信息,请参见中断执行。 调试.全部中断Ctrl + Alt + Break临时停止执行调试会话中的所有进程。仅适用于“运行”模式。 调试.断点Alt + F9 Ctrl + Alt + B显示新断点对话框,在其中可以添加和修改断点。有关更 多信息,请参见断点概述。 调试.调用堆栈Alt + 7 Ctrl + Alt + C显示“调用堆栈”窗口,以显示当前执行线程的所有活动过程或堆栈帧的列表。仅适用于“运行”模式。有关更多信息,请参见如何:使用“调用堆栈”窗口。 调试.清除所有断点Ctrl + Shift + F9清除项目中的所有断点。 调试.反汇编Alt +8显示“反汇编”窗口。有关更多信息,请参见如何:使用“反汇编”窗口。 调试.启用断点Ctrl + F9在当前行上启用断点。 调试.异常Ctrl + Alt + E显示“异常”对话框。有关更多信息,请参见在出现异常之后继续执行。 调试.即时Ctrl + Alt + I显示“即时”窗口,在此可计算表达式和执行个别命令。 调试.局部变量Alt + 4 Ctrl + Alt + V,L显示“局部变量”窗口,以查看当前堆栈帧中每个过 程的变量及变量值。 调试.内存1 Alt + 6 Ctrl + Alt + M,1显示“内存1”窗口,查看在“监视”或“变量”窗口中不能 清楚地显示的大缓冲区、字符串和其他数据。 调试.内存2 Ctrl + Alt + M,2 显示“内存2”窗口,查看在“监视”或“变量”窗口中不能清楚地 显示的大缓冲区、字符串和其他数据。 调试.内存3 Ctrl + Alt + M,3显示“内存3”窗口,查看在“监视”或“变量”窗口中不能清楚地 显示的大缓冲区、字符串和其他数据。 调试.内存4 Ctrl + Alt + M,4显示“内存4”窗口,查看在“监视”或“变量”窗口中不能清楚地 显示的大缓冲区、字符串和其他数据。 调试.模块Ctrl + Alt + U显示“模块”窗口,该窗口允许查看由程序使用的 .dll 或 .exe 文件。有关更多信息,请参见如何:使用“模块”窗口。 调试.新断点Ctrl + B在当前代码行中插入或清除断点。 调试.快速监视Ctrl + Alt + Q Shift + F9显示包含选定表达式的当前值的快速监视对话框。

VS2010使用手册 1.环境窗口介绍 VS2010集成环境是一个组合窗口。窗口包括标题栏、菜单栏、工具栏、工作区和最下面的状态栏。其中工作区包含3个窗口——工作区窗口、编辑窗口和输出、错误窗口。 其实,VS2010所有窗口都可以移动,拖动到自己觉得方便的位置即可。另外,许多其他有用的窗口可以从菜单栏中“视图”菜单项下面找到,需要的时候可以调出来。 图0.1 VS2010集成开发环境 2.建立项目 生成源程序文件的操作步骤为: (1)选择集成环境中“文件”菜单中的“新建”,子菜单下选择“项目”,打开“新建项目”对话框,如图0.2所示。 (2)在左侧“最近的模版”里选择“其他语言”,然后选择“Visual C++”,并在右侧选择“空项目”这一选项。在对话框下方,填写项目名称,选择你要存放项目的位置。注意勾选右侧的“为解决方案创建目录”,单击确定按钮即可,如图0.3所示。 (3)项目建立后,如图0.4所示。

图0.2 新建C源程序 图0.3 建立VisualC++空项目 3.建立并编辑C源程序 (1)在左侧工作区中“源文件”上右键,弹出的菜单中选择“添加”,而后选择“新建项”,打开“添加新项”对话框,如图0.5所示。 (2)在“添加新项”对话框中,选择C++文件(.cpp),并在下方输入源文件的文件名。输入abc,不带后缀的话,文件自动加上后缀为cpp,表示C++源文件。由于C++向下兼容C语言,这样即可。若想仅添加C源文件,需要输入abc.c。 如图0.6所示。

图0.4 空项目界面 图0.5 新建项 (3)单击“添加”按钮,abc.cpp添加就会添加成功,出现在左侧的工作区窗口。双击该文件,在右侧“编辑窗口”即可开始C程序的编写。如图0.7所示。 编写的时候,需要保存文件,按下Ctrl+S快捷键进行保存。

命令名快捷键说明 调试.应用代码更改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”窗口,以查看大的缓冲符串以及无法在“监视”或“变量”窗楚显示的其他数据。 调试.内存4Ctrl + Alt + M,4显示“内存 4”窗口,以查看大的缓冲符串以及无法在“监视”或“变量”窗楚显示的其他数据。 调试.模块Ctrl + D,Ctrl + M 显示“模块”窗口,利用它可以查看程的 .dll 或 .exe 文件。在多进程调试 vs2010 调试快捷键

目录: 1、建立单元测试项目 (2) 1.1、从被测试代码生成单元测试 (2) 1.2、添加单元测试项目 (7) 2、编写测试方法 (7) 3、数据驱动的单元测试 (8) 3.1、ACCESS数据驱动单元测试 (8) 3.2、读取Excel的方法: (11) 4、单元测试的运行 (14) 5、附加测试属性 (15)

VS2010中的单元测试 在VS2010中,单元测试的功能很强大,使得建立单元测试和编写单元测试代码,以及管理和运行单元测试都变得简单起来,通过私有访问器可以对私有方法也能进行单元测试,并且支持数据驱动的单元测试。 1、建立单元测试项目 1.1、从被测试代码生成单元测试 1)实例:创建VC#模式下的控制台应用程序,工程名为CUnitTest 2)输入简单的加、减、乘、除函数代码,如下图所示

(1)在Add方法体内,单击鼠标右键,在菜单中选择“创建单元测试”, 建单元测试代码的基本框架,单击确定按钮

后单击“创建”按钮,则自动创建一个新的单元测试代码项目。 (4)在“解决档案资源管理器”中可以看到多了一个“AddTest”项目,可以看出“AddTest”项目引用了被测项目的程序集,和单元测试框架 Microsoft.VisualStudio.QualityTools.UnitTestFrame,并且自动产生两个C#代码文件 AssemblyInfo.cs和ProgramTest.cs

(5)ProgramTest.cs的代码如下图所示,从图中可以看到,自动产生了一个“ProgramTest”类,并使用[TestClass()]标识为一个单元测试类,以及一个“AddTest”测试方法,。并用[TestMethod()]标识。

VS2010新手必知相关配置和操作 borlittle 2011-8-26 目录 设置打开工程中的资源 (1) 设置输出目录和和源文件目录 (2) 设置调试 (6) 设置链接器 (6) 总结一下该部分设置的注意事项 (8) 设置选项对话框 (9) 为工程文件减肥 (10) 添加编辑器显示行号 (11) 添加“生成”工具条 (11) 添加上“开始执行而不调试”的菜单 (13) 作为VS2010平台的使用新手,尤其是之前没有用过VS2003,VS2005,VS2008的或者只用过VC6.0的人,应该知道这些操作,熟练这些操作将大大的提高编程工作效率。 设置打开工程中的资源 VS2010中默认打开是以资源视图的方式(也就是双击之后往往只看到一个空白的对话框)这和VC中默认是资源管理器不同,所以要设置一下,这样以后双击以rc结尾的文件才能方便可视化编辑。

设置过之后双击资源文件 设置输出目录和和源文件目录 有时工程项目中需要配置不同的输出目录和和源文件目录,设置方法如下:

点击”XX属性”来设置 可以看到该选项下有很多关于自己工程项目的配置,这些配置都是只针对该项目的,工程项目改变了又需要另行配置.

可以选择手动“编辑”或者通过对话框“浏览”获得目录。 调试时,调试目录为要被调试的可执行文件的目录,而输出目录是链接器生成可执行程序的目录。一般情况下可以使输出目录要和调试目录一样,如果调试目录不正确会提示找不到相关的可执行文件。 在VS2010平台中:SolutionDir(解决方案目录)》ProjectDir(项目目录) “》”表示包含的意思,即一个解决方案(.sln文件)下面可以有几个项目(.vcxproj文件)。可以在选择编辑目录之后,通过“宏”按钮来查看相关信息,也可以由此来查看自己是否已经配置正确了,如下图:

所谓的动态调试(跟踪)是指,让程序一步一步的执行,我们可以随时随地的关注程序的运行状态。中断的意思就是让程序先别急着往下执行,等我查看完了,给你指令再接着运行。断点么,就是中断的点呗,就是程序运行到此时,先中断下了,停下了让我看看:) 1.要想用vs来调试,先要让启用服务器端调试,就是在iis中设置一下就行,iis7中设置如下图示(iis7中不仅网站那要设置,在主页那也要设置才能生效): 2.在要调试的地方,插入stop语句: 3.在ie中访问页面,此时会弹出对话框,选择vs2005或者vs2010作为调试器都行,并点击“是”

之后,会有附加安全警告,不用理会,选择附加到此进程即可,即点击“附加”。就会出来调试界面: 大家注意4个地方: 最上面的调试工具栏,那有进行跟踪调试的命令按钮。 最左边的黄色箭头和这一灰色列,黄色箭头告诉我们现在程序运行到那一步了。 右边解决方案资源管理器是iis服务器加载的asp文件。 最下面的一些提示栏还是很有帮助的,比如调用堆栈,局部变量,监视等。 现在结合调试实例,一一为大家进行解释。 首先要了解调试工具栏,为大家介绍常用的几个: 点击绿色三角则让程序继续执行,如果后面有断点(后面介绍如何设置断点)或者stop 则又会中断,否则asp中服务器脚步执行完毕,就能在页面中看见结果。第三个蓝色方块按钮,是指结束调试,即使有断点也不会中断了。黄色箭头是用来显示当前中断的位置,可能我们查看其他页面的代码,忘记当前程序运行到哪了,点击黄色箭头就能立刻转到程序运行点(黄色箭头所指位置表示该语句还未执行)。 然后接下来的三个按钮是跟踪方式(要理解其含义),第一个(快捷键f11,即从左至右第六个)是指单步运行代码,如果遇到函数调用(自己写的),也单步运行进去。第二个(快捷键f10)按钮也是单步运行代码,但是遇到函数调用就不会执行进去(也就是说,在赋值语句,或者没有函数调用的语句中,f10和f11的作用一样的)。第三个(快捷键shift+f11)按钮也是快速返回,就是说当我们通过f11跟踪到某个函数里时,按该键,就会执行完该函数,并返回到调用函数的下一句。

相关主题
相关文档
最新文档