今天居然遭遇了如此郁闷的调试问题:(

    今天真是郁闷,本来就挺忙的,因为明天boss要看一个milestone的演示,我和team里的同事紧赶慢赶。本来看着就胜利在望了,可是下午吃饭回来调试的时候却被弄宕机。不是机器宕了,使人宕了

    复杂的代码已都基本写完了,而且自己都测试过很多遍了,手头的工作也就是组装。只不过组装的时候又会有很多的修改,虽然改动不大,可是需要改动的地方却比较得多,要让组件和页面协调起来嘛。开始都挺好的,没有出什么问题,一切都进行的很顺利,而且也渐渐的看见系统的轮廓了。可是不幸也就在不知不觉中降临了。本来运行好好的代码,出来一个错误:
 
    这两个错误是连着跳出来的,一眼看到第一个错误居然提示的这么详细,做JavaScript都知道,浏览器对于语法错误的报错常常是非常让人抓狂的(后面也会看到,这个理论确实是对的)。开始还很高兴,于是就开始去定义DimTreeTab的文件里找错误。可是我是看呀看,看呀看,看了半天,看到眼睛都了,也没有看出任何的语法错误,更别说少个";"了。虽然我原来说过用VS.NET可以很方便的调试脚本,可是调试器对于这种stupid的语法错误一般是没有用的。结果确实是没有用

    最后看了半天,注释掉了很多已做的修改后,还是觉得错误行就是这句了:
   
    这行也有错,骗俺没有学过JavaScript吧?! 还说缺";"呢,真是%^(&*#*%^%。难道发现了脚本解析器的bug,不是吧,这个语句是个js代码就会用,不可能了!

    继续宕机,这个问题都折磨我快一个小时了,而且还把很多已做好的代码都给屏蔽了。没有招了,就开始乱弄,于是在这行语句上面把这行代码再敲一遍,两行语句一模一样了,还是没有看出问题。又把原来的一行删了,居然好使了,没有错误了!!!太高笑了吧?这也行?于是马上想到可能那句代码中有非法字符,而且还是会"隐身"的。打开UltraEdit,把两行代码Copy进去,还没有打开16进制来查看,就发现问题了。原来错误的那行代码里面多了一个"\t"。在UltraEdit中原形毕露了:

    for ( var i=0 ; i < this.m_Panels.length ; ++i )
    for ( var i=0 ; i < this.m_P   anels.lenth ; ++i )

    kao,耍我啊?这都看不出来还调试程序呢?

    真是冤枉啊,由于我的VS.NET的字体是不等宽的,那两行代码在IDE里的效果如下:
   
    
    红色箭头指的地方就是那个"\t"的位置,谁能看出来啊?!。不过也怪自己不知道什么后按了个"\t",还就按的那么准呢...

posted on 2005-01-27 19:22  birdshome  阅读(2327)  评论(18编辑  收藏  举报

导航