CnPack Forum


 
Subject: 征集双核系统下D2007不稳定问题的反馈
  This thread has beed added to the blog of author's.  
zjy
管理员
Rank: 9Rank: 9Rank: 9



UID 2
Digest Posts 6
Credits 2385
Posts 1543
点点分 2385
Reading Access 102
Registered 2002-12-16
Location China
Status Offline
Post at 2009-9-17 22:34  Profile | Site | Blog | P.M. 
征集双核系统下D2007不稳定问题的反馈

在论坛上看到两个关于双核系统下IDE不稳定问题的帖子:
http://bbs.cnpack.org/viewthread.php?tid=3127

http://bbs.cnpack.org/viewthread.php?tid=3115

根据堆栈信息的线索:
[053932EB]{exceptiondiag100.bpl} ExceptionDiagForm.LoadedModules (Line 56, "ExceptionDiagForm.pas" + 18) + $6C
[20ACF536]{coreide100.bpl} StructureView.TBaseStructureViewServices.SyncStructureChanged (Line 299, "StructureView.pas" + 2) + $8
[2000A455]{rtl100.bpl  } System.@CheckAutoResult (Line 18047, "sys\system.pas" + 6) + $0
[20ACF536]{coreide100.bpl} StructureView.TBaseStructureViewServices.SyncStructureChanged (Line 299, "StructureView.pas" + 2) + $8
[2003EA79]{rtl100.bpl  } Classes.CheckSynchronize (Line 9835, "common\Classes.pas" + 22) + $8
[2016335E]{vcl100.bpl  } Forms.TApplication.Idle (Line 8548, "Forms.pas" + 22) + $11
[20162637]{vcl100.bpl  } Forms.TApplication.HandleMessage (Line 8124, "Forms.pas" + 1) + $11
[2016291F]{vcl100.bpl  } Forms.TApplication.Run (Line 8223, "Forms.pas" + 20) + $3
[0042297A]{bds.exe     } bds.bds (Line 195, "" + 7) + $7

我在D2007下跟踪了一下,结果如下:
IDE有一个单独的后台线程用于实时进行代码解析,以支持Structure窗口的结构显示。
异常时堆栈信息显示出错的函数,应该是在编辑代码时,TBaseStructureViewServices.StructureChanged 在后台线程获得变更通知后,用 TThread.Queue 切换到主线程在 Idle 时通过 SyncStructureChanged 再调用 StructureChanged 时出现的异常。怀疑是由于双核系统下在主线程中执行的 StructureChanged 函数和后台的 Parser 线程之间冲突所致。

目前 CW 的助手或结构高亮等功能也是在主线程 Idle 或定时器中来执行调用后台编译器和代码分析等操作,尚不清楚是什么地方与 IDE 原有的功能有冲突,也不排除 IDE 本身有 Bug,被 CW 放大的可能性。

能重现此问题的朋友,请帮助从以下几方面测试一下:
1、当出现异常对话框时,是否每次异常的堆栈信息都与前面的类似?
2、出现异常的时刻,是否每次都是输入字符等待输入助手弹出的瞬间?
3、当禁用输入助手后,是否还会出现故障?
4、当禁用高亮专家后,是否还会出现故障?
注:禁用专家最好是按照置顶调试帖中的方法(启动IDE时按Shift键),彻底禁止专家创建。




Zhou JingYu
CnPack Administrator
http://www.cnpack.org/
Top
zmfu
新警察
Rank: 1



UID 39301
Digest Posts 0
Credits 36
Posts 15
点点分 36
Reading Access 10
Registered 2008-3-27
Status Offline
Post at 2009-9-18 02:22  Profile | Blog | P.M. 
如果打开一个大的pas,在一个类的private加个变量,或改一下变量名,这时IDE挂掉的可能性是90%

就是你说的第二点
2、出现异常的时刻,是否每次都是输入字符等待输入助手弹出的瞬间?

不过自从我用新版的CW后这几天都没遇到过了
Top
zmfu
新警察
Rank: 1



UID 39301
Digest Posts 0
Credits 36
Posts 15
点点分 36
Reading Access 10
Registered 2008-3-27
Status Offline
Post at 2009-9-19 16:20  Profile | Blog | P.M. 
今天有遇到IDE挂了,打开助手时  每次都是输入字符等待输入助手弹出的瞬间,IDE挂了,禁用助手后,使用IDE自带的现在没有再出现,代码高亮和写线开着没事

[ 本帖最後由 zmfu 於 2009-9-19 16:21 編輯 ]
Top
zmguozi
普通灌水员
Rank: 2



UID 41079
Digest Posts 0
Credits 97
Posts 37
点点分 97
Reading Access 10
Registered 2008-10-10
Status Offline
Post at 2009-9-21 13:16  Profile | Blog | P.M. 
能重现此问题的朋友,请帮助从以下几方面测试一下:
1、当出现异常对话框时,是否每次异常的堆栈信息都与前面的类似?
2、出现异常的时刻,是否每次都是输入字符等待输入助手弹出的瞬间?
3、当禁用输入助手后,是否还会出现故障?
4、当禁用高亮专家后,是否还会出现故障?

1.待测试;
2.出现异常时,输入字符会出现.有时候不输入任何字符也出现,光标点击某行时出现;
3.禁用专家不出现;
4.禁用后,会出现;
补充:屏蔽双核,只用一个核心,就不会出现.

[ 本帖最後由 zmguozi 於 2009-9-21 13:22 編輯 ]
Top
fdltc
普通灌水员
Rank: 2



UID 957
Digest Posts 0
Credits 76
Posts 38
点点分 76
Reading Access 10
Registered 2005-7-21
Status Offline
Post at 2009-9-21 23:19  Profile | Blog | P.M. 
其实双核问题不大,没必要花费精力,大不了启动时多一个选项:以单核运行。

我没感觉ide为什么需要双核,提高不了速度,而且一个好的IDE也不应该占用过多的cpu资源
Top
zmguozi
普通灌水员
Rank: 2



UID 41079
Digest Posts 0
Credits 97
Posts 37
点点分 97
Reading Access 10
Registered 2008-10-10
Status Offline
Post at 2009-9-22 09:33  Profile | Blog | P.M. 
楼上的不是一个很好的解决问题的态度.有问题肯定要修补.
并且双核已经普及,再不解决,很郁闷的.
况且解决双核问题并不是单纯的助手的问题,而是对新事物的态度.

[ 本帖最後由 zmguozi 於 2009-9-22 09:36 編輯 ]
Top
zjy
管理员
Rank: 9Rank: 9Rank: 9



UID 2
Digest Posts 6
Credits 2385
Posts 1543
点点分 2385
Reading Access 102
Registered 2002-12-16
Location China
Status Offline
Post at 2009-9-22 11:42  Profile | Site | Blog | P.M. 
这个问题有点麻烦

在我公司的双核台式机E8400和家里的双核笔记本T6600上都不能重现。

从大家的反馈看,异常应该出现在助手调用后台编译器和IDE的代码结构窗口后台刷新时,双核下两线程同时访问冲突了。

助手在2007下是用规范的方式来调用编译接口。大家能不能再测试一下,禁用专家包后,在输入字符后快速用ctrl+空格调用IDE自己的自动完成。如果出异常,就可以确定是IDE自己的问题了。




Zhou JingYu
CnPack Administrator
http://www.cnpack.org/
Top
zmfu
新警察
Rank: 1



UID 39301
Digest Posts 0
Credits 36
Posts 15
点点分 36
Reading Access 10
Registered 2008-3-27
Status Offline
Post at 2009-9-22 14:55  Profile | Blog | P.M. 
打开助手时在一个大的pas里多修改几次类里的变量名或变量的类型,IDE会出现
assertion failed:amout>=dest-start,file ek_flbuf.cpp, line 315
然后IDE挂掉,如果代码助手和IDE自带的助手同时打开,这样修改几次IDE会停止响应,如果关闭CW助手,只打开IDE的助手一切正常.
Top
rarnu (橙子)
灌水部部长
Rank: 8Rank: 8


UID 2689
Digest Posts 11
Credits 648
Posts 209
点点分 648
Reading Access 10
Registered 2006-10-2
Status Offline
Post at 2009-9-22 18:46  Profile | Site | Blog | P.M. 
D2007 Up4,公司双核,家里四核,一直好好的




Rarnu
CnPack Interfacer
rarnu@cnpack.org
Top
zjy
管理员
Rank: 9Rank: 9Rank: 9



UID 2
Digest Posts 6
Credits 2385
Posts 1543
点点分 2385
Reading Access 102
Registered 2002-12-16
Location China
Status Offline
Post at 2009-9-27 20:09  Profile | Site | Blog | P.M. 
感谢大家的回复

549版本暂时先加了个选项将IDE运行在单核模式下,BDS下默认开启。
以后如果找到更好的解决办法,再更新。




Zhou JingYu
CnPack Administrator
http://www.cnpack.org/
Top
wiseinfo
灌水科科长
Rank: 3Rank: 3



UID 560
Digest Posts 0
Credits 159
Posts 80
点点分 159
Reading Access 10
Registered 2004-11-11
Status Offline
Post at 2009-9-27 20:38  Profile | Blog | P.M. 
有了D2010,俺就不会考虑用D2009了.
Top
 




All times are GMT++8, the time now is 2024-11-1 08:10

    本论坛支付平台由支付宝提供
携手打造安全诚信的交易社区 Powered by Discuz! 5.0.0  © 2001-2006 Comsenz Inc.
Processed in 0.034484 second(s), 7 queries , Gzip enabled

Clear Cookies - Contact Us - CnPack Website - Archiver - WAP