一眨眼的功夫,自己已经学习asp.net的有一年的功夫了。虽然称不上什么大神,但是也有一点知识的积累。就写一片调试的入门文章给那些刚刚入门迷茫的童鞋们。希望你学习了我这篇文章能从迷茫的生活中找回编程的你。

  对于程序员说永远也逃不了调试这个门槛。曾经记得有次,那是我还大一,学习的是c在vc下面,同学写了一段代码,就是计算每月的几日对应找出这 年的第几天。这个非常简单的问题我想谁都会有思路,但是我朋友代码写出来了,编译运行也都通过了,但偏偏就是得到的结果不对。我一看他的代码也没发现什么 问题,这个让我情何以堪,于是我当即设置了断点,运行了一下,一步一步的调试不到5分钟吧问题解决了。问题的所在是他把这个月的天数多加进去了也就是在月 这个for语句里面多了一个等号。这个很小的问题是不容易发现的。举这个例子是为了告诉读者调试对于程序员来说多么重要。我独家之言:不会调试的人永远不 会编程。

  好了现在我们言归正传。写这边文章的目的是为了告诉那些开发asp.net的程序员如何调试,如何找到问题的所在。

  调试技巧1:

  最正规的调试,那就是配合系统的断点调试功能。首先我们新建一个页面,为了方便,我直接把代码写在页面的Page_load函数里面。这里我写的例子还是为了说明某月某日是这一年的第几天的问题。代码如下:

protected void Page_Load(object sender, EventArgs e)
{
//这里假设这一年是平年,每一个月的天数用枚举法列出来就可以计算出某月某日是第几天了
//先简单的测试一下我们输入的数据是否正确 对其所以的天数求和
Int32[] months = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; //利用Linq方法对其求和
months.Sum(); }

我们先把这个在解决方案里面找到这个页面然后右击这个页面把它设置为起始页。

然后在写代码的最左边左机一下设置一下断点。

好了一切的工作都已经完成了,我们开始调试把。按下F5,

我们的程序已经进入了调试的页面了如下:

在红色的里面多了一个黄色的箭头,表示程序调试到这里。这里有一点需要注意,就是黄色这句还没有执行。调试的命令这里备注一下F5表示的继续的执行 到下一个断点,不管中间是什么代码,程序顺序的执行到下一个断点。如果没有断点,那就直接跳转到运行状态了。F10表示的单句的执行调试命令但是如果遇到 调用函数之类就直接跳过函数调试,如果你觉得是函数有问题那就按F11;如果你的函数很有信心,那就按f10跳过函数的调试。个人觉得f10和f11唯一 的区别就是是否调试函数。

我这里调试按了一下f10跳转到下一个调试点。就说明这个跳水点以上的语句都执行了。

我们可以看一下months.Sum()的结果为多少了。右击months这个变量,然后选择快速查看

然后输入你想要查看的数据,比如我想查看months的和。

看到了没这里显示了value为365,就说明了我们数据是正确的。其实我们还有一种办法。查看我们的数据

在底部找到一个watch1的对话框点击它,

然后再他的Name中输入Months.Sum(),在右边就能显示了我们需要的数据了。

正规的调试方法就写到这里。

调试技巧2:

  巧用Response.Write方法。我想很多的从asp和php转行过来的朋友都习惯用这种方法吧。比如我们要把要看一下求和的数据是多少,那就直接把结果Response.Write一下就可以了。

在用这个方法调试的时候记得在Response.Write后面加个return。原因很简单,就是你希望把你执行到这个地方的语句统统的显示出 来。用处:这种调试的方法对于在服务器上调试错误还是有帮助的。因为服务器上不需要安装开发环境,我们只能把出错前面的代码显示出来看一下哪里有问题。 (我以前也碰到过这样的例子,我写的动态的菜单,就是根据权限显示不同的菜单选项。我这些写好了整合到我同事那边也ok,可是过了3天问题来了,同时说放 到服务器上出现问题了,但是自己也是调试不出来,幸好有个工作了10年的同事过来帮忙,用Response.Write语句把sql语句输出来,发现了 sql语句里面的in是空的,没有数据当然会报错了,原来同事没有吧我写的数据脚本在服务器上运行,当时我也成长了)。

调试技巧3:

  这种方法说白了不算是真正的调试方案,因为他的调试需要和数据库中查看哪里输错了。开发过项目的人都知道,一般的错误都是和数据库交互的时候产 生的,比较说,当我们插入的数据的长度超过了数据库规定的长度,那就出错了。好了那我该告诉你怎么调试了。首先打开SQL Server Profiler软件,如果你的sql没有自带的那就网站找一下 安装一下。

然后选择新建跟踪。文件菜单下面的图标。然后输入用户名密码登陆,在选择事件对话框中把只要选择RPC:completed、SQL:BatchCompleted、SQL:batchStarting这三个选项,然后选择运行对话框。

这个时候我们在asp.net与数据库操作试试看看发现了什么~

刚刚执行的语句被捕获到了,哈哈

是不是很神奇,这里需要注意几点,无论是数据库自己的操作或者是asp.net与数据库交互的操作这个SQL Server Profiler都会捕获到。其实如果你长久的开着这个页面会有很多的数据,那调试的时候,不希望在这么多条数据找东西吧,先清空一下跟踪的记录,在运行 代码就可以显示运行代码的语句了。

当然了这个SQL Server Profiler其实真正的用处不是这样的,他是sql 用来调优用的,我这里只是大材小用,希望微软不要找我哈哈。

就写到这里了。分享是一种快乐,但是分享者希望得到的更多地是读者的支持!

Stallman 先生认为最大的快乐是让自己发展的软件让大家来使用了!

asp.net调试技巧的更多相关文章

  1. VS2017调试技巧

    Visual Studio的调试技巧   调试技巧是衡量程序员水平的一个重要指标.掌握好的调试技巧与工具的使用方法,也是非常重要的.*** 演示环境: VS2017C#*** 演示用的代码: publ ...

  2. Visual Studio 调试技巧:10 篇热文汇总

    本文精选了 DotNet  2017年11月份的10篇热门文章.其中有技术分享.技术资源. 注:以下文章,点击标题即可阅读 <Visual Studio的调试技巧 > 调试技巧是衡量程序员 ...

  3. 【工具】VS2010常用调试技巧(1)

    调试是一个程序员最基本的技能,其重要性不言自明.不会调试的程序员就意味着他即使会一门语言,却不能编制出好的软件.本文就本人在开发过程中常用的调试技巧作下简单呢介绍,希望对大家有所帮助,能力超群者请绕道 ...

  4. Visual Studio高级调试技巧

    1. 设置软件断点,运行到目标位置启动调试器 方法①:使用汇编指令(注:x64 c++不支持嵌入汇编) _asm 方法②:编译器提供的方法 __debugbreak(); 方法③:使用windows ...

  5. 【转】你所不知道的Android Studio调试技巧

    这篇写Android studio debug技巧个人觉得写得不错,转自:http://www.jianshu.com/p/011eb88f4e0d# Android Studio目前已经成为开发An ...

  6. VS调试技巧,提高调试效率(转):

    如果你还没有使用过这些技巧,希望这篇博文能帮你发现它们. 它们学起来很容易,能帮你节省很多时间. 运行到光标(Ctrl+ F10) 我经常看见人们是这样来调试应用程序的: 他们在应用程序需要调试的代码 ...

  7. iOS各种调试技巧豪华套餐

    转载自http://www.cnblogs.com/daiweilai/p/4421340.html 目录 前言 逼优鸡 知己知彼 百战不殆 抽刀断Bug 普通操作 全局断点(Global Break ...

  8. xcode调试技巧

    xode报错有时挺无厘头,完全不知道哪里出的问题,最后还得用排除法,记录一些工作中认为有用的调试技巧 1.左侧视图点断点视图,左下角点加号,选择exception breakpoint,类型选c++, ...

  9. 你所不知道的Android Studio调试技巧

    转载:http://www.jianshu.com/p/011eb88f4e0d Android Studio目前已经成为开发Android的主要工具,用熟了可谓相当顺手.作为开发者,调试并发现bug ...

随机推荐

  1. WPF Combo box 获取选择的Tag

    string str1 = ((ComboBoxItem)this.cboBoxRate1553B.Items[this.cboBoxRate1553B.SelectedIndex]).Tag.ToS ...

  2. PS 图像滤镜— — USM 锐化

    这个算法的原理很简单,就是先用高斯模糊获取图像的低频信息,然后用原图减去高斯模糊之后的图,得到图像的高频信息,再将原图与高频信息融合,进一步增强原图的高频信息,看起来,图像的边缘显得特别的sharp. ...

  3. <VS>MFC程序显示命令行窗口

    编写MFC程序时,想打印出调试信息,使用cout后,发现程序并没有像想象中那样自动弹出命令行窗口,要输出的信息也没地方去查看.百度后知道要手动调出命令行窗口,才可以看到输出的信息.   百度上介绍了两 ...

  4. 使用IIS Express调试网站的方法

    如果不想安装IIS,可以直接使用IIS Express来运行网站. vs2012: 新建个文档,拷贝下面代码 taskkill /F /IM "WebDev.WebServer40.EXE& ...

  5. PB调用C# Windows窗体

    以下是PB中的代码:String ls_filenameLong ll_wstyle=1long ll_hwnd,ll_nShowCmdstring ls_lpOperation,ls_lpFile, ...

  6. js的常用正则表达式

    1.在input框中只能输入金额,其实就是只能输入最多有两位小数的数字 //第一种在input输入框限制 <input type="text" maxlength=" ...

  7. Linux which 查找命令

    在学习 兄弟连 linux教学视频 的时候,我将所学的 linux 命令记录在我的博客中,方便自己查阅. 权限管理命令: which 基础的命令 命令名称:which 命令的所在路径:/usr/bin ...

  8. 利用YYLabel 进行图文混排+高度计算

    利用YYLabel 进行图文混排+高度计算 1.项目需求: 用一个控件显示图片和文字,并且依据图片和文字动态计算控件的高度. 2.方案: 利用YYLabel控件和属性字符串处理. 注:(在使用YYLa ...

  9. 一张图入门git系列

    github地址:https://github.com/521xueweihan/git-tips

  10. Lightoj1080 【线段树】

    题意: 给你一个0/1的数组,然后给你n段区间,说这个区间里要反转一次,然后给你Q个询问,问你这个位置是什么: 思路: 我们线段树维护一下就好了额: 其实反转的话,还是算次数是不是,奇偶嘛: #inc ...