⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 杨老师最痛苦的bug.txt

📁 一些让人头痛的bug
💻 TXT
字号:
杨老师最痛苦的BUG之一,与大家分享
(杨老师发表于2004-12-15 14:52:48)

某年,某月,某日。
一个 long long age 正常的程序,突然在某台计算机上运行错误。遂调试之......
经过N小时,逐步缩小范围,并书写调试代码,居然是:刚把一些数据写进一块内存后立刻读出,就是不对。

恍然大明白了......为了证明我的判断,进入DOS:
copy file1 file2
fc /b file1 file2
报N处不相同,并且每次还都不一样。

晕倒~~~~~ 开箱,拔下内存条,换之。遂 OK



最新评论 [发表评论]  查看所有评论  推荐给好友  打印 

 经常会有这种变态的问题出现,所以要积累了〉〉 ( kelio 发表于 2007-8-20 16:09:00)

 这个问题也太少见了 ( wizard_y 发表于 2006-8-1 11:45:00)
 


杨老师最痛苦的BUG之二,与大家分享
(杨老师发表于2004-12-15 14:53:53)

某年,某月,某日。
对N条记录追加到网络服务器上的数据库中,然后数据库就不能打开了。
为调试方便,跟踪着把记录追加到本机数据库中,数据库能打开,一切正常。
于是返回服务器调试。

知道我的痛苦了吧,现在需要调式服务程序了。在程序中插入N处写日志功能,痛苦......
调试过程无意中变换了一下记录入库的顺序,一切正常了。恩???更痛苦了......

经过N小时后,终于找到了问题所在的函数,类似如下的处理:
CFile file;
file.Open(“xxx“,CFile::modeCreate | CFile::modeWrite);
file.Write(...);
file.Close();
file.Open(“xxx“,CFile::modeRead);//这里打开失败
刚刚建立并写入数据的文件,关闭后就不能再打开了。查找错误返回值,曰:共享错误。
倒~~~~~ 奏是偶一个人在操作,奏是偶一个程序在操作,居然共享错误?

捏呆呆郁闷30分钟,恍然大明白了......把病毒实时监控程序关闭。一切OK。
数据库文件中,居然产生了病毒的特征码。汗!



最新评论 [发表评论]  查看所有评论  推荐给好友  打印 

 我碰到过,

为了初始话一个不存在的文件,只好先CREATE,write
然后正常读写

但是就是出问题,提示文件共享违例,

到哪问都没人回答,最后不了了之 ( anbadboy 发表于 2007-10-17 18:31:00)

 说句不中听的话,如果还要对文件进行操作,你为什么要把它close ( cterry 发表于 2006-7-14 11:14:00)

 可能不是吧,应该是没有把文件的占用方式给改了哦 ( d_h_bo 发表于 2004-12-17 18:14:00)

 我不开防火墙,也会无法保存文件的,应该和防火墙无关。再有时候保存完了,源代码里居然变空了,好郁闷,肯定是vc的bug了 ( xinbao_1996 发表于 2004-12-17 17:33:00)

 应该不是病毒的特征码
而是杀毒软件在你写完一个文件,并关闭后。就去扫描这个文件,看是否是被病毒改写了。
所以这时你就无法打开文件了。因为病毒防火墙正在处理这个文件呢,估计还是独占式打开的(^_^).

估计这和我们通常开了病毒防火墙后,VC经常报告无法保存文件,然后再按保存就好了.的情况是一样的 ( nscboy 发表于 2004-12-17 15:48:00) 



杨老师没完没了的BUG之四,与大家分享
(杨老师发表于2004-12-15 14:57:08)

  用一个 CListCtrl 显示数据库的记录内容,共需要显示100多万条。使用 CListCtrl 的虚拟窗口功能后,完成任务。但有“小”问题,就是当执行菜单“全部选择”的功能时,由于记录条目太多了,导致频繁调用函数SetItemSate(),执行太慢了(大约5分钟)。怎么改进那?
  发现用键盘(HOME, Shift + END)实现全部选择的功能,效果很好,速度很快。于是我用程序调用函数 keybd_event()模拟这个功能。效果不错,哈哈~~~~
  测试人员报告:“有的计算机上,这个功能很好;有的计算机上根本就不执行”。啊?于是开始除“虫”。...... 终于找到问题啦,原来使用不同品牌的键盘,其默认的 NUM LOCK 状态不一样,导致模拟键盘动作 HOME,SHIFT + END 没有正常执行。于是,在程序中增加了函数调用 GetKeyState()进行NUM键盘状态的判断。效果不错,哈哈~~~~
  测试人员报告:“用菜单命令执行,这个功能很好;用Ctrl + A加速键执行(为方便用户使用,这个加速键对应菜单的命令)有的时候好用,有的时候不好用,BUG出现的很随机”。啊?于是开始除“虫”。...... 咋找呀?这么个随机的BUG。......哈,我猜到啦~~~~。在用加速键执行的时候,有可能操作人的手指还没有离开 Ctrl 键那,于是导致执行的不是 HOME,而是Ctrl+Home,不是Shift + End,而是Ctrl + Shift + End,My god!!!没完没了的 BUG ,与大家分享。

下面是改进后的代码。 
CList.SetFocus();
DWORD nCount = cList.GetItemCount();
if(::GetKeyState(VK_NUMLOCK) & 1)
{
keybd_event(VK_NUMLOCK,0,0,0);
keybd_event(VK_NUMLOCK,0,KEYEVENTF_KEYUP,0);
}
if(::GetKeyState(VK_CONTROL) & 1)
{
keybd_event(VK_CONTROL,0,0,0);
keybd_event(VK_CONTROL,0,KEYEVENTF_KEYUP,0);
}
keybd_event(VK_HOME, 0, 0 ,0);
keybd_event(VK_HOME, 0, KEYEVENTF_KEYUP,0);
int nItem = -1;
POSITION pos=cList.GetFirstSelectedItemPosition();
if(pos) nItem=cList.GetNextSelectedItem(pos);
if(0 != nItem)
{
if(::GetKeyState(VK_CONTROL) & 1)
{
  keybd_event(VK_CONTROL,0,0,0);
  keybd_event(VK_CONTROL,0,KEYEVENTF_KEYUP,0);
}
keybd_event(VK_HOME, 0, 0 ,0);
keybd_event(VK_HOME, 0, KEYEVENTF_KEYUP,0);
}
keybd_event(VK_LSHIFT, 0, 0 ,0);
keybd_event(VK_END,0, 0 ,0);
keybd_event(VK_END, 0, KEYEVENTF_KEYUP,0);
keybd_event(VK_LSHIFT, 0, KEYEVENTF_KEYUP,0);





最新评论 [发表评论]  查看所有评论  推荐给好友  打印 

 这个方案似乎不完美,应该还有更好的解决方法。 ( king_koo 发表于 2004-12-16 16:38:00)
 






⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -