用Visual Studio调试asp程序

3 篇文章 2 订阅
1 篇文章 0 订阅

原文章链接:网易博客|┌LiHoo


所谓的动态调试(跟踪)是指,让程序一步一步的执行,我们可以随时随地的关注程序的运行状态。中断的意思就是让程序先别急着往下执行,等我查看完了,给你指令再接着运行。断点么,就是中断的点呗,就是程序运行到此时,先中断下了,停下了让我看看:)

1.要想用vs来调试,先要让启用服务器端调试,就是在iis中设置一下就行,iis7中设置如下图示(iis7中不仅网站那要设置,在IE那也要设置才能生效):

 

2.IE的 Internet选项-->设置-->禁用高级调试(取消打钩)-->显示友好Http错误信息(取消打钩)

3.在要调试的地方,插入stop语句:


4.ie中访问页面,此时会弹出对话框,选择vs2005或者vs2010作为调试器都行,并点击“是”VS2010退出的时候貌似存在点问题


之后,会有附加安全警告,不用理会,选择附加到此进程即可,即点击“附加”。就会出来调试界面:

大家注意4个地方:


最上面的调试工具栏,那有进行跟踪调试的命令按钮。

最左边的黄色箭头和这一灰色列,黄色箭头告诉我们现在程序运行到那一步了。

右边解决方案资源管理器是iis服务器加载的asp文件。

最下面的一些提示栏还是很有帮助的,比如调用堆栈,局部变量,监视等。

现在结合调试实例,一一为大家进行解释。

首先要了解调试工具栏,为大家介绍常用的几个:


点击绿色三角则让程序继续执行,如果后面有断点(后面介绍如何设置断点)或者stop则又会中断,否则asp中服务器脚步执行完毕,就能在页面中看见结果。第三个蓝色方块按钮,是指结束调试,即使有断点也不会中断了。黄色箭头是用来显示当前中断的位置,可能我们查看其他页面的代码,忘记当前程序运行到哪了,点击黄色箭头就能立刻转到程序运行点(黄色箭头所指位置表示该语句还未执行)。

然后接下来的三个按钮是跟踪方式(要理解其含义),第一个(快捷键f11,即从左至右第六个)是指单步运行代码,如果遇到函数调用(自己写的),也单步运行进去。第二个(快捷键f10)按钮也是单步运行代码,但是遇到函数调用就不会执行进去(也就是说,在赋值语句,或者没有函数调用的语句中,f10f11的作用一样的)。第三个(快捷键shift+f11)按钮也是快速返回,就是说当我们通过f11跟踪到某个函数里时,按该键,就会执行完该函数,并返回到调用函数的下一句。


比如,服务器准备执行Easp.Use tpl这条语句了,如果我按f10,那么黄色箭头将移动到下一条语句:Easp.Tpl.Load "test.html" 如果按f11则会跟踪到Easp.Use这个函数中,如下图


对于Use我们没什么疑问,不想在Use函数里面一步一步跟踪了,就可以按shift+f11(点击工具栏按钮也行J)就会跳出Use函数,程序就会在Easp.Tpl.Load "test.html"语句处中断。

在跟踪的过程中,可能会遇到了循环语句,如果是几百次的循环,还一步一步的跟踪下去的话,那还不累死人。当然可以在调试之前,就在循环结束后写一个stop语句,点击绿色三角,跳过循环。但是如果开始没料想到呢?不至于结束了从来吧:(。这个时候我们就可以用断点功能了!设置断点就好像是我们在跟踪的时候动态的插入stop语句。方法很简单,在想中断的语句地方,点击右键,选择断点->插入断点。这是,在灰色列就会多一个红色小圆点,那就表示中断点。




此时表示在 Easp.W Easp.Tpl.GetHtml 设置了断点,当程序运行到此处就会停止下来。

刚才大致给大家介绍了如何用stop语句来激活vs进行调试,然后,在调试的过程中如何设置断点,并进行一步一步的跟踪,如果跟踪到函数中,又如何快速的从函数中跳出来。不过,我们调试的目的是从中找出bug来,关键点就是要查看变量的值,那么我们来看看用在静态调试中,要写一堆的东东来查看,但在动态调试中不费吹灰之力就能获得。

最简单的就是点击最下面的“局部变量


当前的所有变量都能看见,而且变量的值,变量的类型也都清清楚楚。对应对象变量点击加号还能展开查看很多的信息。
 

呵呵,不用写任何语句就能看见:访问该页面时,有一个get参数,“id=123”,查看session啊,application啊都很方便,自己定义的变量更是不用说,当然,如果程序没运行到变量赋值处,就什么也没有哦。即使是记录集查看起来也很方便。

因为是在asp页面中中断,所以能查看到很多全局的变量,而进入函数中就,点击“局部变量”就真只能监视函数中的变量了。其中,Me是指对象本身,有点像面向对象语言中的this指针。
 

呵呵,其实不用急,点击“监视”,在名称列中,输入想要知道的变量名,然后回车,即可!而且在这里面动态的输入计算都没问题!
 

这样调试是不是比trace更方便一些?不用为了测试变量值去写一堆代码,而且在看程序逻辑上看来n遍都觉得无错误时,就是不知道变量是在哪出错时,用动态跟踪就很简单了。还有更多的功能,就不介绍了,大家研究了记得贡献成果哦!

嘻嘻,其实完全可以用VS来写asp网站,这样编写和调试完全集成在一起,调试时stop都不用写了:),而且vs还能集成vsssvn这样的源代码管理工具,团队开发也很方便。总之是用vs来写是好处多多啊(哎,被微软的IDE毒害太深了!),只是没有DW那种关于Easp的智能提示(但有vbscript的提示),但是写熟后Easp的那几个函数还记不住?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值