请选择 进入手机版 | 继续访问电脑版
收藏本站腾讯微博新浪微博
点点网模板设计大赛 phpchina

经典论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

蓝色理想 最新研发动态 用悬赏 三天解决问题 解决访问速度慢 论坛支持农历生日 - 给官方提建议

论坛活动及任务 归纳网站最新活动 地图任务 邮件更新任务:保护帐号安全

积分换实物,来参加蓝色理想积分兑换吧! 联系招聘客服 蓝色理想帮你找工作! 万元奖励等你拿——点点网模板设计大赛

查看: 2056|回复: 0

[.net] 又简单又重要:如何断点调试 [复制链接]

99love 楼主

自行车

金牌会员 手机认证 

帖子
1141
体力
3589
威望
8
居住地
四川省 成都市
发表于 2008-3-12 17:21:57 |显示全部楼层
这纯属零技术含量,只是看到一些BI的朋友们常常问些基础问题,比如为什么会出现“未将对象引用到实例”,“这段代码哪里错了”,其实这类问题太好解决了。断点调试一下,看看出错信息,通常就OK了,这里简要的说一下。
以后这类问题自己就解决了,虽然很简单,但是我觉得有必要,希望会的同学不要“抖人”哈(四川/重庆方言:打人的意思)。

什么是断点,这点你知道不?如果这个都不知道,那你确实不会进行断点调试,简言之:断点就是使用程序在运行进程中,中断进行,停下来的那个点。(这是我自己的话,不是官方版本)
你在一个地方打一个断点,程序运行到那里会停下来,你可以检查已经运行的那部分代码有没有问题,是不是按照你的逻辑来进行的。有了断点,你还可以让程序一步一步执行,看看你的循环,递归是不是正确……总之,优点很多。

要打断点,很简单,在代码里,点一下鼠标或按一下F9即可;删除断点,就用鼠标点一下,或者在该行按一下F9就行。



看到没有,行号左边红色的点就是断点。

注:如果你想查看你的所有断点,你可以按ctrl + alt + b,弹出breakpoints框来查看所以断点。

如何使用?
以下面一小截函数为例,点击某个按钮,就会执行这个函数。
  1.     protected void Button1_Click(object sender, EventArgs e)
  2.     {
  3.         int i=0;
  4.         string str1 = "22";
  5.         string str2 = "hello";
  6.         using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Default"].ConnectionString))
  7.         {
  8.             try
  9.             {
  10.                 i++;
  11.                 int.TryParse(str1, out i);
  12.                 int.TryParse(str2, out i);
  13.                 conn.Open();
  14.             }
  15.             catch (SqlException sqlex)
  16.             {
  17.                 Trace.Warn(sqlex.Message);
  18.             }
  19.             catch (Exception ex)
  20.             {
  21.                 Trace.Warn(ex.Message);
  22.             }
  23.             finally
  24.             {
  25.                 conn.Close();
  26.             }
  27.         }
  28.     }
复制代码


断点打在 int.TryParse(str1, out i)那行,运行一下程序,点击一下那个Button,进入函数,程序停在断点位置:

现在你可以查看前面的代码,运行是否正确了:
打开locals窗口,可以看到你定义的局部变量和它们现在的值。

按一下F10或F11,继续下一步:

可以看到黄色一行前进到line29去了。locals窗口有变化:i的值变成红色的22,表示这个值是更改过的。

除了locals窗口,更有用的更改是watch窗口,它可以一直监视某个变量:
在要监视的变量上点右键,点"Add Watch"。

在watch窗口就是监视到它的值,跟踪到它的改变,这比asp那个response.write sql要好得多吧,我直接watch一下Sql这个变量就行了,就不用response.write什么了。
发现异常,更好解决:


总之,出现问题时,自己去断点调试,收获更多。


完成没有技术含量,只是希望初学者快些入门,能迅速解决自己的问题。

[ 本帖最后由 99love 于 2008-3-12 17:23 编辑 ]
西部数码顶级域名注册商39元抢注!
您需要登录后才可以回帖 登录 | 注册

Archiver|手机版|安久科技提供CDN|blueidea.com ( 京ICP备05002321号 )  

GMT+8, 2012-2-13 10:59 , Processed in 0.252886 second(s), 8 queries , Gzip On, Memcache On.

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部