VS 2005的一个BUG及对其原因猜测

简介:
 今天在调试在线脚本的时候,发现了Visual Studio 2005正式版的一个bug。虽然说这只是个小bug,但是由于没有找到替代的解决方法,所以还是让人很是郁闷的说。并且和同事讨论猜测了一下这个bug的可能成因。

    这个bug只在VS 2005里面有,因为VS.NET 2003没有这个功能。对于VS.NET 2003的多文档窗口容器的Tab管理,我们肯定都有不少的抱怨。那种滑动Tab标签的设计看起来嘿么嘿么的酷,可是真的文档打开多了后,整个Tab条变得too too too long,要找某一个Tab出来,那个费劲啊!VS 2005把这里设计成非滑动的Tab标签管理条了,那么Tab多了怎么办呢?多了么就用一个下拉菜单来显示,虽然不酷了,但是比VS.NET 2003方便太多了,并且Ctrl+Tab也会唤出一个可自由选择的窗口。同时VS 2005在每个Tab标签的Context Menu上又新加了几个条目,其中的"Close All But This"和"Copy Full Path"是我觉得非常有用的功能 。结果没想到bug还就这么来了,如下图:
    VS.2005.BUG.01.png
    当我们开打的文档是本地硬盘上的文档的时候,上图的这个"Copy Full Path"功能非常的好用,也没有什么问题,再说了这么简单的东西不是。可是当我们打开的文档,是通过debugger开启的远程在线文档时,这个"Copy Full Path"功能的结果居然变得莫名其妙,上图示例中文档地址明明是google上的一个脚本文件,结果通过那个Copy功能得到的却是: ^TransientScriptDocument11.js,晕啊,我要这么个Path来干什么呢 ?! 这很显然是一个bug啦。

    虽然说是个小bug,可是目前没有任何替代的方法,再让我把那个 http://www.google.com/xxx的地址Copy出来了,所以还是相当的郁闷,那个什么"Scirpt Explorer窗口"里的条目也没有右件菜单

    猜测这个bug可能是这样产生的,对于设计editor的团队,设计好的editor控件有FileName、FullPath、Caption等等的属性,当文档装载时各自保存各自的值,毫无问题,Copy也简单得要命,复制一下FullPath这个属性就行了。可是当文档从网上载入VS 2005后,FileName和Caption等属性还是该干嘛干嘛。可这个FullPath属性嘛,就被赋值为了一个临时文件名"^Transient FileTypeN.*",同时文档存在于内存中,本身也就没有什么实际的FullPath了。而这时谁也没有想到,"Copy Full Path"不该再Copy FullPath属性,而应该Copy Caption属性了!


本文转自博客园鸟食轩的博客,原文链接:http://www.cnblogs.com/birdshome/,如需转载请自行联系原博主。

目录
相关文章
|
6月前
|
测试技术
无法复现的bug,如何处理?
无法复现的bug,如何处理?
442 0
|
5月前
|
供应链 测试技术
修复糟糕的代码气味
修复糟糕的代码气味
58 11
|
5月前
|
JavaScript Java
做小程序时遇到的bug
做小程序时遇到的bug
|
测试技术
软件测试面试题:软件缺陷(或者叫Bug)记录都包含了哪些内容?如何提交高质量的软件缺陷(Bug)记录?
软件测试面试题:软件缺陷(或者叫Bug)记录都包含了哪些内容?如何提交高质量的软件缺陷(Bug)记录?
339 0
|
架构师 测试技术 程序员
程序中的Bug是如何产生的?
  ★   Bug,总是令人讨厌的东西。那Bug是如何产生的呢?作为高级软件架构师和软件测试工程师的易哥将在这篇文章中解答这个问题。   ”   说起Bug,大家都认为它是被“写”出来的,即主要在开发阶段产生。   但其实Bug的产生最有可能是在需求阶段(意外吧!这是有统计数据证明的),且在需求阶段产生的Bug影响最大。当然,在设计、开发、使用阶段也会出现Bug。   接下来我们详细了解下Bug的相关知识。
846 0
|
Windows
SmartSvn遗漏.a文件的解决办法
SmartSvn遗漏.a文件的解决办法
146 0
|
运维 Cloud Native 测试技术
高质量的缺陷分析:让自己少写 bug
缺陷分析做得好,bug 写得少。阿里资深技术专家和你分享如何进行高质量的缺陷分析,总结了 5 个要点,通过缺陷分析消除开发中的各种盲点,打造一个学习型的团队。
高质量的缺陷分析:让自己少写 bug
|
搜索推荐 IDE 测试技术
如何验证程序是否完成,测试以及修正Bug?
在日常中,我们码代码都是按照需求来的,为了验证我们的工作成果是否符合项目的需求,那么验证程序是否完成、测试以及修复bug就成了我们工作中非常重要的流程。