帝国软件
  设为首页 加入收藏 关于我们
 
解密帝国网站管理系统v4.6
栏 目:
 
您的位置:首页 > 技术文档 > ASP.NET编程 >
程序的追踪及检视
作者:佚名 发布时间:2005-04-02 来源:不详
 


    要让程序继续执行,只要按下「Continue」按钮就会执行目前断点以下的程序代码。由于我们这个例子在循环中执行,因此程序执行下一个I 时又会停在这一行。由于刚才我们把I 的值改成1,所以只要再按两次Continue 后I 的值为3,程序执行完毕;最后网页出现我们程序的结果:



Step...
要更详细的执行程序,可以使用Step Into、Step Over 以及Step Out。我们以下列程序为例:

<Script Language="VB" Runat="Server">
Sub Page_Load(Sender As Object,e As EventArgs)
Dim I As Short
For I = 0 To 5
Test(I)
Next
End Sub
Sub Test(ByVal J As Short)
Response.Write("I=")
Response.Write(J.ToString())
Response.Write("<br>")
End Sub
</Script>

上述范例中我们在呼叫Test 这个程序的叙述加入断点,然后浏览EX11.aspx,即进入中断模式;如下图所示:



我们按下「Step Into」按钮,发现黄色箭头即往下移动一行,再按「Step Into」一次,程序即跳入Test 这个程序中执行:



接下来我们直接按下「Step Out」按钮,发现程序的执行跳出Test 这个程序,而停留在呼叫Test这个程序的下一行叙述:


 
   「Step Out」不是逐行执行,而是一口气将程序内的所有程序代码执行完毕,再跳到呼叫该程序的下一行。接下来我们按下「Step Over」按钮,发现程序还是一次执行一行,而停在「Test(I)」这个叙述上。我们再按一次「Step Over」按钮时,发现程序并没有跳入Test 程序中,而是停留在「Next」上面,如下所示:



这是因为「Step Over」遇到过程调用时,一次就将程序内的程序执行完毕,并不一行一行的执行所致。



Locals Window
    我们在上述例子追踪程序时,对于变量的检视还要跳到实时运算窗口输入「?」来观察,实在不太方便。此时我们可以利用Locals Window(区域窗口),Locals Window 可以列出目前所在程序中的所程序阶层变量以及对象的值,如下图所示:



    我们观察到变量I 的内容为1,而且型态为Short。其中除了变量I 之外,还一并列出了其它项目。Me 代表目前的Page 对象,我们可以展开来观察Page 对象的所有成员,而Sender 表示触发此程序的对象为何,e 则是代表参数对象的内容。当我们再按一次「Step Over」时,发现LocalWindow 中的变量I 自动由1 更新为2:


Locals Window 除了可以显示变量以及对象的内容外,在Locals Window 中也可以直接修改变量或对象的值。例如我们将I 的值更改为3,如下图所示:



接下来我们按下「Step Into」按钮跳入Test 程序中,发现Locals Window 会自动显示Test 程序中的变量J,如下所示:



Call Stack
    Call Stack 可以让我们追踪程序之间的呼叫关系。程序在执行的时候若遇到过程调用,原来的程序便会暂时停止执行而进入程序中执行;待程序执行完毕后,才又会回到原先的程序中执行。此时这些程序的执行就像堆积木一样,先执行的放下面,后执行的再堆上去;必须要等到后面堆上去的程序执行完毕后,才执行迭在下方的程序。这种执行的方式我们称为「先进后出」,也可以称为「堆栈」。一但程序比较复杂时,一定会有这种程序内呼叫其它程序的状况,此时要追踪这种我们称为「堆栈」的过程调用,就可以利用「Call Stack」。由于刚刚我们跳入了Test 这个程序内,我们知道Test 程序是在Page_Load 事件程序中被呼叫的,所以除了Test 目前是最高层的程序之外,它的下一层就是Page_Load 程序。我们按下「Call Stack」按钮来观察,如下图所示:



    我们发现Call Stack 窗口中的最上层对象果然是Test 程序,并且在前面用黄色箭头标注,表示目前程序在这个程序中执行。如果我们要追踪Test 程序被上层所呼叫的地址,还可以在Page_Load 程序上双击鼠标左键,除错器便会以绿色箭头标出,如下图所示:


Quick Watch
    Quick Watch(快速检视)是另外一种可以快速检视变量值的窗口。我们可以将键盘光标停在想要观察的变量上,然后按下「Quick Watch」按钮或按鼠标右键选择,如下图所示:


选择「Quick Watch」后即出现变量的数据,如下图所示:


另外注意立即运算窗口以及Quick Watch 可以检视的变量,只限制于目前所在的程序内。

Watch Window
Watch Window(监视窗口)是另一个可以检视变量值的工具,我们点选「Watch Window」显示Watch Window,如下图所示:



    接下来我们可以在想要监视的变量上按鼠标右键,选择「Add Watch」;或是先将变量标记下来,然后利用拖放的方式将变量拖到Watch Window,如下图所示:



    而Watch 窗口中显示的值可以在10 进制或16 进制切换,只要在Watch 窗口中按下右键并核取或取消「Hexadecimal Display」选项,即可切换显示的方式。

接着我们用Step Into 按钮逐行执行,可以看到变量的内容变化。

  
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·如何成为一个优秀的jsp程序员  (2005-04-02)
 ·利用JSP 2.0开发Web应用程序  (2005-04-02)
 ·想成为一个JSP网站程序员吗?  (2005-04-02)
 ·Java Servlet开发三层数据库程序  (2005-04-02)
 ·利用JSP“抓”网页代码的程序  (2005-04-02)
 ·运用J2EE创建灵活易扩展的企业应  (2005-04-02)
 ·J2EE 应用程序开发:专业设计师的  (2005-04-02)
 ·J2EE 应用程序中的数据管理和数据  (2005-04-02)
 ·Windows2000下安装J2EE和部署J2E  (2005-04-02)
 ·构建J2EE应用程序的任务列表  (2005-04-02)

   栏目导行
  PHP编程
  ASP编程
  ASP.NET编程
  JAVA编程
   站点最新
·致合作伙伴的欢迎信
·媒体报道
·帝国软件合作伙伴计划协议
·帝国网站管理系统采集使用教程
·帝国网站管理系统模板制作教程
·帝国CMS模板下载
·Discuz6.0.1UC版通行证发布
·帝国网站管理系统之网站迁移教程
·帝国网站管理系统实例入门教程下载
·《帝国网站管理系统》实例入门教程
   类别最新
·ASP.NET中为DataGrid添加合计字段
·.text urlRewrite介绍
·利用 ASP.NET 的内置功能抵御 Web
·ASP.NET Cache
·用 WebClient.UploadData 方法 上载
·ASP.NET 程序设计-序
·什么是客户端/伺服端(Client/Serve
·因特网应用程序的开发
·网页的种类
·.NET Framework-Microsoft Visual
 
关于帝国 | 广告服务 | 联系我们 | 程序开发 | 网站地图 | 留言板 帝国网站管理系统