CnPack Forum


 
Subject: 下面是不是bug?
niaoge
灌水司司长
Rank: 6Rank: 6



UID 9910
Digest Posts 0
Credits 438
Posts 143
点点分 438
Reading Access 10
Registered 2007-4-8
Status Offline
Post at 2008-5-5 07:19  Profile | Blog | P.M. 
下面是不是bug?

CnProjectViewBaseFrm.pas 内的,当我鼠标双击时View时,fastMM报一个地址找不到错误,这个错误难重复实现,老大请检查,

procedure TCnProjectViewBaseForm.lvListSelectItem(Sender: TObject;
  Item: TListItem; Selected: Boolean);
begin
  //ItemChange(双击与单击都能触发吧?),下面这句是应是指定application在空间时执行DoSelectItemChanged
  CnWizNotifierServices.ExecuteOnApplicationIdle(DoSelectItemChanged);
end;

procedure TCnProjectViewBaseForm.DoSelectItemChanged(Sender: TObject);
begin
  //当application在空间时执行DoSelectItemChanged,但是CnProjectViewBaseForm假设已经被释放,这里就有可能产生内存地址找不到
  //咋改呢?老大看看,哈哈,也可能是fastMM乱报的
  UpdateStatusBar;
  StatusBar.Invalidate;
end;


下面是出错的log

---------------------------
bds.exe: Memory Error Detected
---------------------------
FastMM has detected an attempt to call a virtual method on a freed object. An access violation will now be raised in order to abort the current operation.



Virtual method: Offset +312



The allocation number was: 106987900



Stack trace of when the object was allocated (return addresses):

20003DAE [sys\system.pas][System][System.@GetMem][2654]

20003DEB [sys\system.pas][System][System.@ReallocMem][2762]

20031A09 [common\Classes.pas][Classes][Classes.TList.SetCapacity][3136]

200317FC [common\Classes.pas][Classes][Classes.TList.Grow][3012]

20031601 [common\Classes.pas][Classes][Classes.TList.Add][2920]

20A6E90F [CodeMgr.pas][CodeMgr][CodeMgr.TScanner.AddLineSourcePos][1744]

2168E387 [PasMgr.pas][PasMgr][PasMgr.TPascalScanner.NextToken][2081]

2168EA56 [PasMgr.pas][PasMgr][PasMgr.TPascalScanner.NextSymbol][2444]

2168FB6E [PasMgr.pas][PasMgr][PasMgr.TPascalScanner.SkipTo][2841]



Stack trace of when the object was subsequently freed (return addresses):

D26291 [FastMM4.pas][FastMM4][FastMM4.DebugFreeMem][6054]

20003DEB [sys\system.pas][System][System.@ReallocMem][2762]

20031A09 [common\Classes.pas][Classes][Classes.TList.SetCapacity][3136]

200317FC [common\Classes.pas][Classes][Classes.TList.Grow][3012]

20031601 [common\Classes.pas][Classes][Classes.TList.Add][2920]

20A6E90F [CodeMgr.pas][CodeMgr][CodeMgr.TScanner.AddLineSourcePos][1744]

2168E387 [PasMgr.pas][PasMgr][PasMgr.TPascalScanner.NextToken][2081]

2168FE16 [PasMgr.pas][PasMgr][PasMgr.TPascalScanner.TokenIdentIs][2914]

20D6B226 [Symbols.pas][Symbols][Symbols.TSymbolTable.FindSymbol][268]



The current stack trace leading to this error (return addresses):

101889DB [ProjectExtWizard\CnProjectViewBaseFrm.pas][CnProjectViewBaseFrm][TCnProjectViewBaseForm.DoSelectItemChanged][624]

10139564 [Utils\CnWizNotifier.pas][CnWizNotifier][TCnWizNotifierServices.DoIdleExecute][1711]

1013916B [Utils\CnWizNotifier.pas][CnWizNotifier][TCnWizNotifierServices.DoApplicationIdle][1612]

201D1768 [appevnts.pas][AppEvnts][AppEvnts.TCustomApplicationEvents.DoIdle][216]

201D1F83 [appevnts.pas][AppEvnts][AppEvnts.TMultiCaster.DoIdle][478]

201632E3 [Forms.pas][Forms][Forms.TApplication.Idle][8533]

2016263C [Forms.pas][Forms][Forms.TApplication.HandleMessage][8124]

20162924 [Forms.pas][Forms][Forms.TApplication.Run][8223]

42297F [bds.dpr][bds][bds.bds][195]



Current memory dump of 256 bytes starting at pointer address 12E28D8:

F8 0D D3 00 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80

80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80

80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80

80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80

80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80

80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80

80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80

80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80

? .  ? .  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?

?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?

?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?

?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?

?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?

?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?

?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?

?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?


---------------------------
确定   
---------------------------
Top
shenloqi
灌水处处长
Rank: 4



UID 34
Digest Posts 1
Credits 287
Posts 179
点点分 287
Reading Access 10
Registered 2003-3-15
Status Offline
Post at 2008-5-5 14:12  Profile | P.M. 
看上去如果没有在关闭窗体时取消空闲执行的过程的确可能有问题。似乎是想在用户切换了选择的条目的时候在状态栏延后显示提示信息,而双击操作则是关闭窗体并打开所选条目,这样如果在关闭窗体时没有取消注册的在空闲执行的函数就会出现问题。
Top
Passion (LiuXiao)
管理员
Rank: 9Rank: 9Rank: 9


UID 359
Digest Posts 19
Credits 6812
Posts 3579
点点分 6812
Reading Access 102
Registered 2004-3-28
Status Online
Post at 2008-5-5 17:26  Profile | Blog | P.M. 
对。应该在关闭窗体时取消注册的那个OnIdle东西。
Top
Passion (LiuXiao)
管理员
Rank: 9Rank: 9Rank: 9


UID 359
Digest Posts 19
Credits 6812
Posts 3579
点点分 6812
Reading Access 102
Registered 2004-3-28
Status Online
Post at 2008-5-5 21:06  Profile | Blog | P.M. 
379的每日构建版中已修正。烦请再验证?不过这个问题貌似不容易复现啊。
Top
betwinyou
新警察
Rank: 1



UID 40024
Digest Posts 0
Credits 2
Posts 1
点点分 2
Reading Access 10
Registered 2008-5-5
Status Offline
Post at 2008-5-5 22:54  Profile | Blog | P.M. 
delphi2007是不是没有编辑器全屏功能了
Top
 




All times are GMT++8, the time now is 2024-9-19 09:32

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

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