VS 2010调试详细教程
- 格式:doc
- 大小:297.00 KB
- 文档页数:8
VS2010使用说明书VS2010全新操作软件说明书———功能更强大与操作简单并无冲突欢迎使用VS2010全新操作软件,目前该软件支持的控制卡型号有VSA系列、VSD卡、VS-mini卡、VSC++卡,暂时不支持VSB卡,请勿在VSB卡上更新VS2010软件。
在VSA系列的控制卡中,也仅支持标签颜色为白底红字的控制卡,如果错误的更新了VS2010软件将对控制卡造成不可恢复的损坏,请您谨慎使用。
目录第一部分 VS2010全新软件简介 (3)一、VS2010全新软件概述 (3)二、VS2010全新软件的运行环境及组件介绍 (4)三、VS2010操作界面简介 (5)四、软件主要功能列表 (6)五、菜单功能介绍 (6)1.文件 (6)2.编辑 (7)3.视图 (7)4.节目 (7)5.预览 (7)6.工程 (7)7.控制卡 (7)8.远程 (8)10.帮助 (8)六、快捷工具栏介绍 (8)七、对象工具箱介绍 (8)八、节目对象和属性介绍 (9)九、编辑区介绍 (9)十、系统状态栏介绍 (10)总结 (10)第二章对象的使用和编辑 (10)一、名词解释 (11)二、什么是对象 (11)1.编辑对象 (11)2.显示对象 (11)三、对象与属性 (11)四、属性的编辑与对象的操作 (11)五、我们使用的对象 (12)1.编辑类对象 (12)节目和对象 (12)2.显示类对象 (13)文本文字 (13)码文字 (14)RTF文字 (14)图片显示 (14)文字节目单 (14)数字时钟 (15)模拟时钟 (15)动画 (15)表格 (15)天气信息 (15)倒计时 (16)第三章显示屏的管理 (16)一、管理的概念: (16)二、默认的环境 (16)三、发送节目 (17)四、下载节目 (17)五、工程的建立与导出 (18)六、校正显示屏的时钟 (18)七、自动开关显示屏的设置 (18)八、自动亮度调整的设置 (18)九、自动发送功能使用 (18)十、临时调整显示屏的亮度 (19)十一、广域网控制简介 (19)第四章技术支持和服务 (20)第一部分 VS2010全新软件简介一、VS2010全新软件概述VS2010全新软件是一款具有超强功能的异步LED显示屏操作软件,具有行业领先的技术优势,加上合理的设计思路,真正做到了功能强大与操作简单不相互冲突。
怎么使用VS2010进行远程调试
使用VS 2010进行局域网内的远程调试,首先需要在被调试的机器上安装远程调试软件。
本文店铺假定调试的程序是32位的应用程序,所以使用的远程调试软件是x86软件。
使用VS 2010进行远程调试的方法
找到VS 2010中的远程调试工具的目录。
可以从开始中找到VS 2010,再选择“Visual Studio Tools”- "Visual Studio 2010 Remote Debugger"。
此时会打开该工具的目录
调试的软件是32位的程序,所以这里选的是x86的远程调试软件。
压缩一下,传给被调试的机器上,启动远程调试软件
打开远程调试软件的配置对话框
在对话框中,选择"No Authentication(native only)"且勾选"Allow any user to debug","Maximum idle time"设置为0 这样在被调试机器上配置远程调试软件就完成了。
IntelliTrace使用IntelliTrace 调试应用程序Justin Marks下载代码示例用户如何修复他们的代码中的Bug?您设置一些断点、在调试器下运行程序、进行一点单步调试–并祈求能够轻而易举地发现问题,这样您就能继续处理其他事情。
几乎自ENIAC 发明以来,我们就一直在进行着同样方式的调试。
这种繁琐而耗时的调试方法为我们提供了很好的帮助,但是时候使调试更加轻松了。
随着Visual Studio 2010 Ultimate 的发布,新的IntelliTrace 功能使开发人员能够更深入地了解应用程序的执行情况,从而使调试进入了21 世纪。
与其他监视和跟踪工具(例如Windows Sysinternals 中的Process Monitor)非常类似,Visual Studio 2010 在应用程序执行时收集有关应用程序的数据,来帮助开发人员诊断错误。
收集的数据称为IntelliTrace 事件。
这些事件将在默认调试过程中收集,此外,它们使开发人员能够进行回溯以查看应用程序中发生的情形,而不必重新启动调试器。
在本文中,我将向您介绍IntelliTrace,并演示它如何在开发人员的日常开发活动中体现出价值。
我将演示IntelliTrace 如何提供在应用程序执行过程中所发生事件的时间线,以及开发人员如何能够使用这些事件来帮助调试。
接着,我将论述一些设置,开发人员可以更改这些设置来收集有关应用程序的一组更深层的信息,从而获得完整的执行历史记录。
最后,我将演示如何使用其他人(测试人员)创建的以前记录的IntelliTrace 文件来调试应用程序,而不必运行应用程序来重现错误。
当Visual Studio 诊断团队开始规划Visual Studio 2010 时,我们花费了很多时间与客户讨论,了解客户如何诊断其应用程序中的问题。
尽管每个人都有不同的方式和喜欢使用的工具集,但有一点是绝对清楚的:传统的应用程序问题诊断方法困难、耗时而且成本高昂。
MicrosoftVisualStudio2010使用说明2Microsoft Visual Studio 2010使用说明概述:1、本说明仅适用于已安装好VS2010的C或C++初学者用户;2、本说明简单介绍了如何使用VS2010编写,调试简单的C或C++程序;3、本说明基于Windows7下安装的Microsoft Visual Studio 2010专业版编写。
操作步骤:1、打开VS010:2、进入开始界面,新建项目:选择左上角的文件->新建->项目3、首先选择项目类型,我们这里选择的是Win32项目,然后输入名称,解决方案名称,还有你需要存放本项目的位置(备注:解决方案和项目的区别在于,解决方案是项目的集合体,就像社区和住户一般),然后点击确定。
4、进入向导界面,选择下一步。
5、进入应用程序设置界面,选择应用程序类型:控制台应用程序,在附加选项中对空项目打勾,然后点击完成。
6、选择源文件,鼠标右击7、选择添加,新建项。
8、选择C++文件,输入文件名(文件名一般与项目名一致)9、进入代码编辑界面,输入程序代码:10、程序输入完毕后,按F7,编译程序,程序编辑区域的下方有一个输出区域,我们可以在输出区域查看程序的编译状态,如果有错误,则按F4即可跳转到出错语句,并且在输出区域可以看到错误的详细状态。
11、出错示范调试:12、调试完成,没有语法错误后,我们按CTRL+F5,运行程序:完毕!13、当我们还需要新建一个类似的程序时,我们可以选择:解决方案,右击鼠标,选择添加->新建项。
14、剩下过程与详见步骤3-11,注意:我们需要运行此程序时不能直接执行步骤13,而应该先将这个项目设为启动项,右击项目,选择设为启动项;。
LED显示屏使用说明
修改电脑本地连接的IP网上邻居――查看网络连接――本地连接(与显示屏相连的网卡)――属性――Internet协议――属性――使用下面的IP地址――192.168.0.××(“××”为从0到254之间除了99之外的任何数字)――确定双击桌面快捷键
就会弹出对话框直接点击确定进统!
点击“硬件设置”密码“88888888”进入硬件设置系统点击“查找控制卡”选择查找方式“查找网络上的
控制卡”点击确定查找控制卡如果能正确读取到控制卡会出现下图(默认设置)
进入到控制卡设置系统后就点击设置“扫描参数”如图点击更新至新版本程序时会弹出一个对话框选项如图
扫描方式选择完后就点击确定会有一串数据在下方滚动,待更新固件程序完成后就点击“设置参数”设置完成后才点击设置基本参数进行“高度”与“宽度”的设置。
如图
就关掉该窗口,进行工程控制卡设置如图
进入到工程控制卡设置窗口设置如图
确定完后再在显示屏管理框设置好宽度高度与IP地址。
vs2010下调用matlab2012b调试方法配置环境:vs2010+matlab2012b+win7 64位说明:以安装路径“E:\Program Files\MATLAB\R2012b\”为例MATLAB外部支持文件夹:E:\Program Files\MATLAB\R2012b\externmatlab自带的c例程:E:\ProgramFiles\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\includeE:\ProgramFiles\MATLAB\R2012b\extern\include\win64library files:E:\ProgramFiles\MATLAB\R2012b\extern\lib\win64\microsoft2 点击LInker input 将libmx.lib;libmex.lib;libeng.lib;加入到Additional Dependencies或者用#pragma comment (lib, "libeng.lib")#pragma comment (lib, "libmx.lib")#pragma comment (lib, "libmex.lib") 语句3 环境变量加上E:\ProgramFiles\MATLAB\R2012b\bin\win64 否则编译成功运行时会显示缺少dll4包含头文件engine.h5这就可以去调用engine里的一些引擎函数了做好这些后,如果我们环境一样,下面的代码应该能够编通并且正常执行,其中包含了常用的一些函数,一般来说使用Engine的时候也就用这些了。
Visual Studio 调试小技巧(1)-根据字符串内容添加断点在用Visual Studio调试程序时,我们经常需要根据数值添加断点。
比如需要当i == 2时中断运行,我们可以添加如下的断点:有些时候,我们需要根据字符串的内容来添加断点。
比如我们在调试如下代码:void CVSDebugTricksDlg::OnBnClickedButton1(){char* string;for(int i = 0; i < 5; ++i) {string = GetString(i);TRACE(string);}}char* CVSDebugTricksDlg::GetString(int number){switch (number) {case 0:return"Zero";case 1:return"One";case 2:return"Two";default:return"Other";}}我们希望当运行到Trace(string)时,如果字符串string为”Two”时能中断运行。
如果我们和根据数值添加断点一样的方法,添加如下断点:当我们运行上述代码时,会发现即使string的内容”Two”时,运行并没有中断。
这是因为==运算符比较的是两个字符串的地址而不是内容,因此上述断点并不能满足我们的需求。
Visual Studio考虑到程序员经常会根据字符串的内容添加断点,因此在添加断点这个功能上为字符串做了特殊的支持。
我们在根据字符串内容添加断点时,可以使用strcmp等函数来设置断点。
于是在上述示例中,我们可以用strcmp函数来添加如下断点:Visual Studio中的添加断点功能中支持的字符串函数有:strlen, wcslen, strnlen, wcsnlen, strcmp, wcscmp, _stricmp, _wcsic mp, strncmp, wcsncmp, _strnicmp, _wcsnicmp, strchr, wcschr, strstr , wcsstr.在使用Visual Studio开发调试程序时,我们经常需要打开查看窗口(Watch)来分析变量。
VS2010下编译调试mex文件编译条件:vs2010,64位电脑。
文中$matlabroot =C:\Program Files\MATLAB\MATLAB Production Server\R2014b。
(在我的电脑上)1.新建一个Win32 Project,Application type选择dll,Additional options选择Empty project。
2.打开工程的Properties,(1)在Properties主界面,Configuration Manager…里将Platform改为x64,debug模式。
(2)General下的Target Name改为目标函数名,Target Extension改为.mexw64。
(3)VC++ Directories下的Include Directories增加$matlabroot \extern\include。
(4)VC++ Directories下的Library Directories增加$matlabroot\extern\lib\win64\microsoft。
(5)Linker->General->Enable Incremental Linking改为No。
(6)Linker->Input->Additional Dependencies增加libmx.lib;libeng.lib;libmat.lib ;libmex.lib。
3.添加相关代码,本人习惯将所有代码放在工程(不是解决方案)下的src文件夹里。
4.添加模块定义文件(.def文件),内容为LIBRARYEXPORTS mexFunction如果def文件不是放在工程目录下,应该在工程的属性中Linker->Input->Module Definition File修改def文件的路径。
5.Build工程,生成的动态链接库文件在解决方案x64\Debug文件夹下,将该文件复制到matlab程序所在的文件夹。
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。
如果点击“pin”图标后再当把VS2010切换到Test.cs 文件时,我们一样可以看见datatip提示!请看下图:当然了断点都可以保存成解决方案,这个Datatip 一样可以保存起来:(VS2010->Import DataTips)导出xml 文件,下次通过(VS2010->Export DataTips)载入您的datatip debug 方案。
一、建立空项目
`
二、导入源代码文件
把GAMP源码加载到项目中:右键项目->添加“现有项”
其中,main.c是主函数。
三、项目属性
选择:项目 -> 属性。
设置一:配置属性 -> C/C++ -> 预处理器 -> 预处理定义:
WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS;ENAGL O;ENACMP;ENAGAL;NFREQ=3
设置二:配置属性 -> 链接器 -> 调试 -> 生成调试信息:是
设置三:配置属性-> C/C++ ->常规->调试信息格式:C7
四、设置pthread
解压附件找到Pre-built.2文件夹
分别设置头文件路径、库文件路径、库文件名。
右键项目->属性-> C/C++ ->常规->附加包含目录
右键项目->属性->链接器->常规->附加库目录(选pthreadVSE2.lib在的目录)
右键项目->属性->链接器->输入->附加依赖项(我的是VS2010,选的是pthreadVSE2.lib,假如加了多个lib文件的话,就在文件中间加分号)
五、加载linux兼容头文件
将unistd.h和dirent.h放到类似这样的C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include安装目录下。
在此操作实例中,您将了解如何在本地计算机和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。
VS2010远程调试张鑫2011.11.7目录计算机配置 (3)本地计算机 (3)远程计算机 (3)设置环境 (5)本地环境设置 (5)远程环境设置 (6)启动调试(本机操作) (7)计算机配置本地计算机本地计算机包含所有的源码,安装VS2010.远程计算机远程计算机包含编译后的程序安装程序:在远程的目标主机上需要安装调试器,分为X86版本和X64版本,可以在visual studio 2010的安装光盘的/Remote Debugger 目录中找到。
也可以到微软的官方网站下载,如图所示:图1-1点击图1-1中的VS2010远程调试器文件夹:图1-2在图1-2的X86文件夹中能够看到msvsmon.exe,该应用程序为VS2010远程调试工具:设置环境本地环境设置创建一个用户与远程用户名与密码完全相同,也可以修改当前使用的用户名和密码实现,无需新建用户。
方法1:在“我的电脑”图标上点击右健,选择“管理”,然后找到“本地用户和组”->“用户”,选择右键菜单中的新用户选项新建一个用户。
该新用户必须与远程用户名与密码完全相同:图2-1右击该用户,选择右键菜单中的“属性”选项,可对新用户隶属的组进行编辑:图2-2方法2:在“我的电脑”图标上点击右健,选择“管理”,然后找到“本地用户和组”->“用户”,然后在当前用户的用户名上点击右键,选择“重命名”为与远程相同,然后再重新设置密码与远程相同即可。
远程环境设置登陆调试用户,将编译后的程序文件夹(注:远程机调试的程序版本必须与本机版本完全一致)设为共享文件夹:图2-3启动VS2010远程调试工具:图2-4启动调试(本机操作)1)在windows 7中,按住SHIFT键,然后在visual studio 2010的图标上点击右键,然后选择“以其它用户身份运行”,然后输入远程调试用的账号和密码:图3-1图3-22)打开需要调试的项目,选择需要调试的程序集,右键对其属性进行编辑:图3-3选择“属性”中的调试选项卡,对“启动操作”中的启动外部程序一项进行编辑,该项内容由远程机IP及指向共享文件夹中的应用程序路径组成。
梦之缘工作坊出品,转载请注明,本人邮箱:rainbow203@教程如下:开源软件ContaCam官网/component/option,com_remository/Itemid,34/func,select/id,15/开源包,解压路径请全部为英文不然可能出现莫名错误。
说明书….\doc\build_and_release.txt一、环境安装1.Microsoft DirectX 9.0 SDK or higher说明:A.如果出现错误,Error Code S1023,需要先卸载原来版本:/s/blog_5fb5554f01017xv7.html/huang5556019/article/details/7080703 B.VS环境配置:/wuwangrun/article/details/8156641(库目录和包含目录好像反了)直接项目文件上右键属性配置2. -> to make the installers用于把项目打包成安装文件(needed also the nsisFirewall, KillProc and UAC plugins)必须安装在默认C盘路径。
关于插件nsisFirewall, KillProc and UAC plugin,在开源包..\setup\plugins已有,把目录下文件拷贝到C:\Program Files\NSIS\Plugins下,即完成安装。
3. -> to compress the activex还不明白其功能可以先不用- /wink -> for tutorials build4. Non-free tool to make the translations:用于软件语言翻译,可以先不用- 二、项目生成1.….\Setup\Make_All.batEdit此文件,不要直接运行。
修改路径,把结尾处的4个/DINSTALLER_WIN9X删除。
vs2010使用方法嗨,宝子!今天来唠唠VS2010咋用哈。
VS2010一打开,界面可能会让你有点懵,就像走进一个超级大的游乐场,到处都是好玩的,但不知道从哪开始。
其实呢,咱先看那个新建项目。
就像你要盖房子,得先有个规划一样。
点新建项目,里面有好多类型呢,比如你要是想写个小程序,就找那个控制台应用程序之类的。
创建好项目之后,就来到代码编辑区啦。
这就像是你的小天地,想咋写代码就咋写。
不过VS2010很贴心哦,它有代码提示功能。
你刚敲几个字母,它就会蹦出可能的代码选项,就像小精灵在旁边给你出主意。
要是你不小心写错代码了,它也会给你提示错误在哪,就像一个小老师在旁边轻轻敲你的小脑袋说“这里不对啦”。
再说说调试功能。
这个可太有用啦。
当你的程序跑不起来或者结果不对的时候,就像小火车脱轨了。
这时候就可以点那个调试按钮,就像给小火车做个全身检查。
你可以一步一步地看程序是咋运行的,看看是哪个变量调皮捣蛋了,或者是哪个逻辑出问题了。
还有哦,VS2010里面有很多工具。
比如说资源视图,要是你想给你的程序加点图片啊、图标啥的,就可以在这捣鼓。
就像给你的小房子装修,挂个漂亮的画一样。
在这个软件里,你还能管理你的代码文件。
就像整理你的小书架,把不同类型的代码文件放在不同的地方。
如果有不需要的文件,也可以轻松删掉,就像把不看的书从书架上拿走。
另外呢,如果你想让你的程序界面变得好看点,有个设计视图可以用。
你可以在那拖拽一些控件,就像搭积木一样,轻松做出个简单的界面。
不过呢,VS2010刚开始用可能还是会有点小麻烦,但是别灰心呀。
就像学骑自行车,摔几跤就会骑得很溜啦。
多捣鼓捣鼓,你就会发现它的乐趣,然后就能用它做出超酷的东西啦。
加油哦,宝子!。
所谓的动态调试(跟踪)是指,让程序一步一步的执行,我们可以随时随地的关注程序的运行状态。
中断的意思就是让程序先别急着往下执行,等我查看完了,给你指令再接着运行。
断点么,就是中断的点呗,就是程序运行到此时,先中断下了,停下了让我看看:)1.要想用vs来调试,先要让启用服务器端调试,就是在iis中设置一下就行,iis7中设置如下图示(iis7中不仅网站那要设置,在主页那也要设置才能生效):2.在要调试的地方,插入stop语句:3.在ie中访问页面,此时会弹出对话框,选择vs2005或者vs2010作为调试器都行,并点击“是”之后,会有附加安全警告,不用理会,选择附加到此进程即可,即点击“附加”。
就会出来调试界面:大家注意4个地方:最上面的调试工具栏,那有进行跟踪调试的命令按钮。
最左边的黄色箭头和这一灰色列,黄色箭头告诉我们现在程序运行到那一步了。
右边解决方案资源管理器是iis服务器加载的asp文件。
最下面的一些提示栏还是很有帮助的,比如调用堆栈,局部变量,监视等。
现在结合调试实例,一一为大家进行解释。
首先要了解调试工具栏,为大家介绍常用的几个:点击绿色三角则让程序继续执行,如果后面有断点(后面介绍如何设置断点)或者stop 则又会中断,否则asp中服务器脚步执行完毕,就能在页面中看见结果。
第三个蓝色方块按钮,是指结束调试,即使有断点也不会中断了。
黄色箭头是用来显示当前中断的位置,可能我们查看其他页面的代码,忘记当前程序运行到哪了,点击黄色箭头就能立刻转到程序运行点(黄色箭头所指位置表示该语句还未执行)。
然后接下来的三个按钮是跟踪方式(要理解其含义),第一个(快捷键f11,即从左至右第六个)是指单步运行代码,如果遇到函数调用(自己写的),也单步运行进去。
第二个(快捷键f10)按钮也是单步运行代码,但是遇到函数调用就不会执行进去(也就是说,在赋值语句,或者没有函数调用的语句中,f10和f11的作用一样的)。
vs2010的11个调试技巧和⽅法调试是软件开发周期中很重要的⼀部分。
它具有挑战性,同时也很让⼈疑惑和烦恼。
总的来说,对于稍⼤⼀点的程序,调试是不可避免的。
最近⼏年,调试⼯具的发展让很多调试任务变的越来越简单和省时。
这篇⽂章总结了可能节省你⼤量时间的11个Visual studio的调试技巧和⽅法。
1 悬停⿏标查看表达式值调试是很有挑战性的。
⽐如在函数内逐步运⾏可以看出哪⾥出错,查看堆栈信息可以知道函数被谁调⽤等等……但是⽆论哪种情况下,查看表达式和局部变量的值都是很⿇烦的(把表达式和局部变量放到watch窗⼝⾥)。
⼀种更简单的⽅法,把⿏标停在所需查看的数据上。
如果是类或结构,那么点击展开可以很⽅便快速地查看其字段。
2 在运⾏过程中改变变量值调试器不仅仅是分析程序崩溃和诡异⾏为的⼯具,还可以通过逐步调试检查数据和⾏为是否符合程序预期的⽅法解决许多bug。
有时,你会想是否设置某些条件为真,程序就能正确运⾏了。
其实你只要把⿏标移动到变量上,双击值,然后输⼊你需要的值。
这样就不需要修改代码,重启程序了。
3 设置下⼀个运⾏位置⼀个典型的调试案例是我们经常会⽤逐步调试的⽅法去分析为什么函数出错了。
这时你遇到这个函数调⽤其他函数返回错误,⽽这个错误不是你想要的,你该怎么办?重启调试器?这⾥有个更好的⽅法,直接把黄⾊的运⾏位置箭头拖到你想要的运⾏位置。
其实就是跳过中间运⾏代码,直接到想要的位置。
很简单吧。
4 编辑然后继续运⾏在运⾏⼀个很复杂的程序和插件时,发现⼀个错误,但是不想浪费时间去重编译重启动程序。
很简单,只要在这个位置修改这个bug,然后继续调试。
Visual studio会修改这个程序,使得你可以继续调试⽽不需要重启程序。
值得注意的是“编辑然后继续运⾏”这个功能有⼏个限制。
⼀,它不能在64位代码上使⽤。
如果想使⽤这个功能,到项⽬设置⾥的编译选项,选择”x86”作为⽬标平台。
不要担⼼,这⽬标平台在reslease配置是和”debug是分离的,也就是说依然是”Any CPU”的设置。
设置断点:在如下图中的红色圆点处设置断点,红色圆点表示已经在这行设置断点。
快捷键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时,每次命中断点。
注意:如果多个条件同时用的话,结果取交集。
断点筛选器
例如,在调试一个服务程序时在其内部打上了断点,由于这是一个公用的服务不希望其他访问这个服务的程序被所设断点调试干扰,怎么办?断点筛选器就是限制只在某些进程和线程中设置断点。
筛选器文本框中输入以下一个或多个子句,可以使用&(AND)、||(OR)、!(NOT)和圆括号组合这些子句描述应在何处设置断点的表达式,或者清除该表达式以便在所有进程和线程中设置断点。
比如,希望断点只在被机器名为xye-PC的机器访问时才触发,我们可以右击断点进行断点筛选器设置。
当其他机器访问程序的时候断点不会触发,其他机器访问时感觉不到断点的存在。
跟踪点—进入断点时的自定义操作
许多人不知道“跟踪点(TrackPoints)”这个调试功能。
“跟踪点“是种特殊的断点,当它被命中时,它会触发一系列自定义操作。
如果你想观察程序的行为,而又不想中断调试的时候,这个功能尤其有用。
我将用一个简单的控制台程序来演示如何使用“跟踪点”。
如下是斐波那契数列的一个递归实现:
以上程序中,我们使用Console.WriteLine() 输出针对特定输入值生成的最终斐波那契数列。
如果希望在调试器里观察操作中每一次递归运算后的数列而又不实际中断程序运行,该怎么
办呢?“跟踪点”可以轻松实现。
设置跟踪点:
你可以在特定的行上,按F9加跟踪点。
然后右击断点,在上下文菜单中选择“命中条件”:
在弹出对话框上,你可以设置命中该断点时,所触发的事件。
在上面例子中,我们设定一旦命中断点时就打印追踪信息。
注意,我们已经把局部变量“x”的值,作为追踪信息的一部分输出。
局部变量可以通过{变量名}语法输出。
你还可以利用系统内置的命令($CALLER, $CALLSTACK, $FUNCTION等等),在追踪信息中输出常用的调试值。
在上例中,我们同时选中了底端的“continue execution“选项,这说明我们不希望程序中断调试状态,而是继续运行。
唯一的不同是:每次断点条件满足时,我们的自定义追踪信息都将被输出。
现在当我们运行程序时,会发现自定义追踪信息自动显示在Visual Studio的“输出“窗口里。
这让我们很容易看到程序的递归调用过程:
你也可以选择往应用程序中添加一个自定义追踪信息的监听器。
这时追踪点的输出信息将通过它输出,而不是Visual Studio的“输出“窗口。