调试允许开发人员逐步了解代码的工作过程,变量的值是如何变化的,如何创建和销毁对象等。
当网站第一次执行时,visual studio会显示一个提示,询问是否应该启用它来进行调试。
为了方便演示,这里创建一个asp.net空网站,并添加一个窗体文件:default.aspx ,以及后端 default.aspx.cs 文件。简单实现计算输入字符串的长度。
default.aspx 文件的代码 -
<%@ page language="c#" autoeventwireup="true" codefile="default.aspx.cs" inherits="_default" %>
<!doctype html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>用于演示调试代码</title>
</head>
<body>
<form id="form1" runat="server">
<div>
输入字符串:<asp:textbox id="textbox1" runat="server"></asp:textbox>
<asp:button id="button1" runat="server" onclick="button1_click" text="计算长度" />
<asp:label id="label1" runat="server"></asp:label>
</div>
</form>
</body>
</html>
default.aspx.cs 文件的代码 -
using system;
using system.collections.generic;
using system.linq;
using system.web;
using system.web.ui;
using system.web.ui.webcontrols;
public partial class _default : system.web.ui.page
{
protected void page_load(object sender, eventargs e)
{
}
protected void button1_click(object sender, eventargs e)
{
string str = textbox1.text;
string msg = "当前字符串长度为:"+(str.length).tostring();
label1.text = msg;
}
}
可以在代码行的左侧点击右键插入断点,假设在代码的第17行设置了一个断点,如下 -
通过点主菜单中的【调试】->【开始调试】,来启用调试,如下所示 -
这里启动了网站页面,然后输入一个字符串,并点击提交 -
也可以通过在web.config
中配置以下代码行:
<system.web>
<compilation debug="true">
<assemblies>
..............
</assemblies>
</compilation>
</system.web>
调试工具栏提供了所有可用于调试的工具。和其它的ide差不多,多次使用和练习就可以了。
断点指定运行时运行特定的代码行,然后停止执行,以便可以检查代码并执行各种调试工作,例如,更改变量的值,逐步执行代码,移入和移出函数和方法等等。
visual studio提供了以下调试窗口,每个窗口都显示一些程序信息。下表列出了窗口:
编号 | 窗口 | 描述 |
---|---|---|
1 | immediate |
显示变量和表达式。 |
2 | autos |
显示当前和之前的语句中的所有变量。 |
3 | locals |
显示当前上下文中的所有变量。 |
4 | watch |
最多显示四组不同的变量。 |
5 | call stack |
显示调用堆栈中的所有方法。 |
6 | threads |
显示和控制线程。 |