用Visual Studio调试asp程序
原文章链接:网易博客|┌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)按钮也是单步运行代码,但是遇到函数调用就不会执行进去(也就是说,在赋值语句,或者没有函数调用的语句中,f10和f11的作用一样的)。第三个(快捷键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还能集成vss,svn这样的源代码管理工具,团队开发也很方便。总之是用vs来写是好处多多啊(哎,被微软的IDE毒害太深了!),只是没有DW那种关于Easp的智能提示(但有vbscript的提示),但是写熟后Easp的那几个函数还记不住?
用Visual Studio调试asp程序相关推荐
- Visual Studio调试ASP代码
启用服务端脚本调试后,可以用VS调试--附加到进程--w3wp 然后就可以像调试C#一样设置断点进行调试了.
- Visual studio 中调试ASP程序、Javascript 代码 - 刘稻博客
2019独角兽企业重金招聘Python工程师标准>>> PS: 1.在调试asp时,要先附加进程(附加到:自动:与具体调试网站对应的 dllhost.exe 或 w3wp.exe . ...
- Visual Studio调试/加载速度很慢
本文翻译自:Visual Studio debugging/loading very slow I'm at wits end. 我的智慧结束了. Visual Studio is typically ...
- 12个Visual Studio调试效率技巧
在这篇文章中,我们假定读者了解VS基本的调试知识,如: F5 开始使用调试器运行程序 F9 在当前行设置断点 F10 运行到下一个断点处 F5 从被调试的已停止程序恢复执行 F11 步进到函数内(如果 ...
- Visual Studio 2017 ASP.NET Core开发
Visual Studio 2017 ASP.NET Core开发,Visual Studio 2017 已经内置ASP.NET Core 开发工具. 在选择.NET Core 功能安装以后就可以进行 ...
- 用 Visual Studio 和 ASP.NET Core MVC 创建首个 Web API
原文:Building Your First Web API with ASP.NET Core MVC and Visual Studio 作者:Mike Wasson 和 Rick Anderso ...
- Visual Studio调试之断点基础篇
原文链接地址:http://www.cnblogs.com/killmyday/archive/2009/09/26/1574311.html 我曾经问过很多人,你一般是怎么调试你的程序的? F9, ...
- 【C++】在 Visual Studio 调试器中指定符号 (.pdb) 和源文件(转载自RSS翻译)
在 Visual Studio 调试器中指定符号 (.pdb) 和源文件 查找并指定符号文件和源文件:指定符号加载行为.使用符号和源服务器:自动或按需加载符号. 内容 查找符号 (.pdb) ...
- 利用Visual Studio调试JavaScript脚本
大家如果用过JavaScript一定对它的调试感到很头痛吧,浏览器所返回给你的错误信息基本没有任何意义.一个很小的错误可能导致调试大半天,费时费力. 先说些废话= =b...昨天公布了研究生寝室分配结 ...
- Visual Studio调试之符号文件
调试符号文件为调试器提供了从二进制机器代码地址到源代码文本文件代码行的映射.因此有了符号文件,我们才能: 1. 设置断点,因为调试器需要符号文件提供的映射关系,将源代码行的行号转换成对应的机 ...
最新文章
- 类型初始值设定项引发异常
- php 字符串判空,php 使用 preg_replace 去除空格后的字符串无法判空
- MySQL5.7参数log_timestamps
- 异常 try catch finally return 执行关系 MD
- 报表工具实现单据套打
- 【转】Azure云存储及存储账户概述***
- 后缀数组 TYVJ P1860 后缀数组
- cf706C(dp)
- 使用mprotect系统调用来调试内存问题:memalign,aligned_alloc
- 如何测试前台获得的数据
- HDU 4731 Minimum palindrome 打表找规律
- UEFI开发探索59-UDK Debugger Tool调试Firmware
- IT行业技术部门人员架构设计
- cad安装日志文件发生错误_CAD安装不正确怎么办?CAD发生错误安装过早结束的解决方法...
- 支付宝登录java和android
- SWUST OJ 980
- Tauri 应用篇 - 系统托盘
- 利用python做微信聊天记录词云分析——记录美好回忆
- 什么是挂载,Linux挂载详解
- vue.runtime.esm.js?2b0e:619 [Vue warn]: Duplicate keys detected: ‘tab-Test3‘. This may cause an upda