- 1、本文档共20页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
调试技巧vs2008实用
VS2005调试技巧集合
/rainylin/archive/2007/09/06/1775125.aspx
下面有从浅入深的6个问题,您可以尝试回答一下
一个如下的语句for (int i = 0; i 10; i++){if (i == 5)j = 5;},什么都写在一行,你怎么在j=5前面插入断点
在一个1000次的循环体内部设置断点,你希望当循环进行到900次后中断,怎么才能做到呢?
你有一个表达式在上面循环的某一次发生了变化,你想知道是哪一次,在哪个地方,怎么才能做到?
你希望你的断点在被命中100次后,每命中三次中断一次,比如第103,第106,第109怎样做?
你有在调试一个服务程序,希望在其内部打上了断点,可是,由于这是一个公用的服务你不希望其他访问这个服务的程序被你的调试所干扰,你想 怎么办?
怎样知道2个断点中断的时间间隔
问题1,2
一个如下的语句for (int i = 0; i 10; i++){if (i == 5)j = 5;},什么都写在一行,你怎么在j=5前面插入断点
在一个1000次的循环体内部设置断点,你希望当循环进行到900次后中断,怎么才能做到呢?
这两个问题最简单,我在一个例子里说明
例如如下循环
for(int i=0;i1000;i++){doSomeThing......}
在循环的大括号上单击右键,插入断点,用这个方法,可以对付那些喜欢把语句写在一行上的家 伙,其实,随着.Net3.5中Linq的出现,我们肯定也会经常在在一行上写复杂的表达式,这个时候用这种插入方法会比较管用
ok,现在我们来编辑这个断点的条件,在断点上右键单击,选择如图菜单项
在弹出的窗口中可以设置断点命中的条件i==900
注意我是在调试C#代码,默认的条件语句语法是C#,如果你想切换,那就需要用Ctrl- B,来插入断点,并在弹出窗口中选择语言
通过这样设置条件断点,我们就可以解决我们的问题1,2了
?
问题3
你有一个表达式在上面循环的某一次发生了变化,你想知道是哪一次,在哪个地方,怎么才能做到??
同样通过设置条件断点我们还可以解决我们的问题3,对表达式变化的跟踪
string user=yizhu2000
for(int i=0;i10000;i++){
DoSomething1()
.......
DoSomethingN()
}
当循环执行完毕时我们发现user变成了smart_boy,你不知道这个值是在第几次 循环的时候变化的,那么你是不是会选择打上断点,一次一次中断,来查看呢?当然不用
在循环体结束的位置我们设置一个断点,打开条件编辑窗口(打开方法同上),设置表达式为 user,勾选下面的HasChanged,也就是说,你告诉断点,当user的值发生变化时才触发
(注意:第一次执行到断点的时候,程序一定会中断,并计算这时表达式的值,所以,所谓发生变 化,指的是以后执行到断点是表达式的值和第一次执行到断点时表达式的值的比较)
问题4
你希望你的断点在被命中100次后,每命中三次中断一次,比如第103,第106,第109怎样做??
如何让断点在指定的命中次数或者大于某个次数时触发呢?方法是设定几个断点的 HitCount,右键单击断点,在弹出菜单中选择Hit Count,会弹出如下窗口
在when the break point is hit下拉列表里,我们可以看到四个选项
break always:总是中断
break when the hit count is equal to:等于某次数时中断
beak when the hit count is a multpile of:当次数是某数的倍数时中断
break when the hit count is greater than or equal to:当大于等于某数时中断
问题5
你有在调试一个服务程序,希望在其内部打上了断点,可是,由于这是一个公用的服务你不希望其他访问这个服务的程序被你的调试所干扰,你想 怎么办??
前面4个问题都已经解决了,第5个问题的解决方法是利用断点的Filter功能,比如我希望 断点只有被机器名为yizhu的机器访问才能触发,我可以这样设置
当其他机器访问程序的时候,断点将不会触发,这样做的优点是通过设置机器名,我们可以让其他 机器访问的时候感觉不到断点的存在,除此之外我们可以设 置机器名,进程号,进程名,线程号,线程名作为filter,而且还可以把他们组合起来,比如我希望通过当机器yizhu的dllhost进程调用时才触 发,那么问题就可以设置为MachineName=yizhuProcessName=dllhost
问题6? 怎样知道2个断点中断的时间间隔?
现在我们来解决第6个问题:
在程序性能调
您可能关注的文档
- 2012年上海各区县高三一模数列题汇总.doc
- 肥城市安庄镇上庄小学危改工程简介.doc
- 新概念二练习.doc
- 小学消防安全疏散演练实施方案.doc
- 化学必修一第三节氧化剂还原剂.ppt
- 兽药的研发、生产及应用.ppt
- 09高考表态发言.doc
- 2011中考物理:模拟试题及答案.doc
- OEM供应商管理细则.doc
- 第九章目标管理.ppt
- 2025年苯基顺酐行业分析报告及未来五到十年行业预测分析报告.docx
- 【2025春】人教版七年级下册生物教学工作计划及进度表).docx
- 2025年苯加氢行业分析报告及未来五到十年行业预测分析报告.docx
- 2025年电子期刊行业分析报告及未来五到十年行业预测分析报告.docx
- 2025年贝壳行业分析报告及未来五到十年行业预测分析报告.docx
- 2025年北京体育用品行业分析报告及未来五到十年行业预测分析报告.docx
- 2025年背光源行业分析报告及未来五到十年行业预测分析报告.docx
- 2025年苯甲醚行业分析报告及未来五到十年行业预测分析报告.docx
- 2025年泵用输液器行业分析报告及未来五到十年行业预测分析报告.docx
- 2025年蹦床行业分析报告及未来五到十年行业预测分析报告.docx
文档评论(0)