AV in MadExcept32.dll

contains all delphi packages mentioned below

AV in MadExcept32.dll

Postby BugDigger » Mon Aug 06, 2012 8:54 am

Hi Mathias!

I have a problem with latest version.
CB2007. Nearly empty test VCL application with the only button:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
try
{
int* p =(int*)12345;
int w = *p; // try read, invalid access
}
catch(EAccessViolation& e) { ShowMessage("caught in AV"); }
catch (Exception& e) { ShowMessage("caught in Ex"); }
catch(...) { ShowMessage("caught in ..."); }
}

1) run and close the application without pressing button - OK, no problem
2) run. press button (AV and message box as expected). Close application - AV in MadExcept32.dll.

I see no saved bug report, so I send screenshort in attachment.
Attachments
BugReport.JPG
BugReport.JPG (164.59 KiB) Viewed 11472 times
BugDigger
 
Posts: 29
Joined: Sun Jun 17, 2012 10:10 am

Re: AV in MadExcept32.dll

Postby madshi » Mon Aug 06, 2012 12:27 pm

Hello,

I've tried to reproduce the problem on my PC, but it doesn't occur here. Could you please email your project to me with full source code and your compiled exe file?

Thanks, Mathias.
madshi
Site Admin
 
Posts: 9822
Joined: Sun Mar 21, 2004 5:25 pm

Re: AV in MadExcept32.dll

Postby BugDigger » Tue Aug 07, 2012 3:59 am

See test project in attachment.

Umm... Attachment is downloaded (as I can see in browser's progress bar) but I don't see any visual mark about presence of the attachment...
BugDigger
 
Posts: 29
Joined: Sun Jun 17, 2012 10:10 am

Re: AV in MadExcept32.dll

Postby BugDigger » Tue Aug 07, 2012 4:19 am

madshi wrote:I've tried to reproduce the problem on my PC, but it doesn't occur here.


BTW, it can be related to the problem (crash after "unoffending" AV) discussed on

https://forums.embarcadero.com/thread.j ... t=0#478749

http://blogs.msdn.com/b/oldnewthing/arc ... 73741.aspx

But initial AV in the test project is on address 12345 which can not be stack guard page.
BugDigger
 
Posts: 29
Joined: Sun Jun 17, 2012 10:10 am

Re: AV in MadExcept32.dll

Postby madshi » Tue Aug 07, 2012 1:13 pm

I don't think it's related to that.

I don't see any attachments, either. Could you please email the project (with compiled exe) to me? madshi (at) gmail (dot) com. Thanks.
madshi
Site Admin
 
Posts: 9822
Joined: Sun Mar 21, 2004 5:25 pm

Re: AV in MadExcept32.dll

Postby BugDigger » Wed Aug 08, 2012 2:21 am

Done. Archive's password is "AVtest" (gmail rejects exe in attachment).
BugDigger
 
Posts: 29
Joined: Sun Jun 17, 2012 10:10 am

Re: AV in MadExcept32.dll

Postby madshi » Thu Aug 09, 2012 10:26 am

Thanks, that was quite helpful. The problem should be fixed in this build:

http://madshi.net/madCollectionBeta.exe (installer 2.7.2.2)

Could you please confirm?
madshi
Site Admin
 
Posts: 9822
Joined: Sun Mar 21, 2004 5:25 pm

Re: AV in MadExcept32.dll

Postby BugDigger » Fri Aug 10, 2012 9:09 am

Hello, Mathias!
Yes, now all work as expected, thank you!

But what do you think about the results? (see attached generated leak report; 2 AV after 2 button click)
1) Expert shows memory leak on every AV in test. Is this really memory leak? What about newer versions of CB?
2) Why report shows call stack from TApplication.ProcessMessage (not my button click procedure)?
Last edited by BugDigger on Fri Aug 10, 2012 11:13 am, edited 1 time in total.
BugDigger
 
Posts: 29
Joined: Sun Jun 17, 2012 10:10 am

Re: AV in MadExcept32.dll

Postby BugDigger » Fri Aug 10, 2012 9:12 am

I don't see my attachment again. Here is its contents:

Code: Select all
Project3.exe - 2012-08-10 - 15.55.01 - leak report.mbr

allocation number: 1901
program up time: 2.42 s
type: EAccessViolation
address: $4ec8ff0
size: 16
access rights: read/write
message: EAccessViolation

main thread ($b38):
671c9455 madExcept32.dll madExceptDbg  1442 GetMemCallback
0040726c Project3.exe    system        2654 @GetMem
0040840a Project3.exe    system        8807 TObject.NewInstance
004935b6 Project3.exe                       __ClassCreate
00497ea6 Project3.exe    Sysutils           EAccessViolation.Create
00495d15 Project3.exe    Controls           TWinControl.GetDeviceContext
0040ea77 Project3.exe    madExcept          _16526
00498452 Project3.exe                       ____ExceptionHandler
0049fc5d Project3.exe    Sysutils           @__InitExceptBlockLDTC
7c90e485 ntdll.dll                          KiUserExceptionDispatcher
004751fc Project3.exe    Controls      5229 TControl.Click
004956e2 Project3.exe    stdctrls      3745 TButton.Click
004957e0 Project3.exe    stdctrls      3797 TButton.CNCommand
00474cf7 Project3.exe    Controls      5146 TControl.WndProc
00478cef Project3.exe    Controls      7304 TWinControl.WndProc
0049558c Project3.exe    stdctrls      3684 TButtonControl.WndProc
00474984 Project3.exe    Controls      5021 TControl.Perform
00478e3f Project3.exe    Controls      7353 DoControlMsg
00479837 Project3.exe    Controls      7616 TWinControl.WMCommand
0048a588 Project3.exe    forms         5016 TCustomForm.WMCommand
00474cf7 Project3.exe    Controls      5146 TControl.WndProc
00478cef Project3.exe    Controls      7304 TWinControl.WndProc
00487677 Project3.exe    forms         3512 TCustomForm.WndProc
00478418 Project3.exe    Controls      7073 TWinControl.MainWndProc
0046d4c0 Project3.exe    Classes      11583 StdWndProc
7c90e470 ntdll.dll                          KiUserCallbackDispatcher
7e3792de USER32.dll                         SendMessageW
7e37a993 USER32.dll                         CallWindowProcA
00478deb Project3.exe    Controls      7334 TWinControl.DefaultHandler
00478cef Project3.exe    Controls      7304 TWinControl.WndProc
0049558c Project3.exe    stdctrls      3684 TButtonControl.WndProc
0046d4c0 Project3.exe    Classes      11583 StdWndProc
7e3696c2 USER32.dll                         DispatchMessageA
0048f3f4 Project3.exe    forms         8105 TApplication.ProcessMessage

memory dump:
04ec8ff0  d0 97 49 00 ec af ec 04 - 00 00 00 00 00 00 00 00  ..I.............

allocation number: 1996
program up time: 6.77 s
type: EAccessViolation
address: $5758ff0
size: 16
access rights: read/write
message: EAccessViolation

main thread ($b38):
671c9455 madExcept32.dll madExceptDbg  1442 GetMemCallback
0040726c Project3.exe    system        2654 @GetMem
0040840a Project3.exe    system        8807 TObject.NewInstance
004935b6 Project3.exe                       __ClassCreate
00497ea6 Project3.exe    Sysutils           EAccessViolation.Create
00495d15 Project3.exe    Controls           TWinControl.GetDeviceContext
0040ea77 Project3.exe    madExcept          _16526
00498452 Project3.exe                       ____ExceptionHandler
0049fc5d Project3.exe    Sysutils           @__InitExceptBlockLDTC
7c90e485 ntdll.dll                          KiUserExceptionDispatcher
004751fc Project3.exe    Controls      5229 TControl.Click
004956e2 Project3.exe    stdctrls      3745 TButton.Click
004957e0 Project3.exe    stdctrls      3797 TButton.CNCommand
00474cf7 Project3.exe    Controls      5146 TControl.WndProc
00478cef Project3.exe    Controls      7304 TWinControl.WndProc
0049558c Project3.exe    stdctrls      3684 TButtonControl.WndProc
00474984 Project3.exe    Controls      5021 TControl.Perform
00478e3f Project3.exe    Controls      7353 DoControlMsg
00479837 Project3.exe    Controls      7616 TWinControl.WMCommand
0048a588 Project3.exe    forms         5016 TCustomForm.WMCommand
00474cf7 Project3.exe    Controls      5146 TControl.WndProc
00478cef Project3.exe    Controls      7304 TWinControl.WndProc
00487677 Project3.exe    forms         3512 TCustomForm.WndProc
00478418 Project3.exe    Controls      7073 TWinControl.MainWndProc
0046d4c0 Project3.exe    Classes      11583 StdWndProc
7c90e470 ntdll.dll                          KiUserCallbackDispatcher
7e3792de USER32.dll                         SendMessageW
7e37a993 USER32.dll                         CallWindowProcA
00478deb Project3.exe    Controls      7334 TWinControl.DefaultHandler
00478cef Project3.exe    Controls      7304 TWinControl.WndProc
0049558c Project3.exe    stdctrls      3684 TButtonControl.WndProc
0046d4c0 Project3.exe    Classes      11583 StdWndProc
7e3696c2 USER32.dll                         DispatchMessageA
0048f3f4 Project3.exe    forms         8105 TApplication.ProcessMessage

memory dump:
05758ff0  d0 97 49 00 ec af 75 05 - 00 00 00 00 00 00 00 00  ..I...u.........
BugDigger
 
Posts: 29
Joined: Sun Jun 17, 2012 10:10 am

Re: AV in MadExcept32.dll

Postby madshi » Fri Aug 10, 2012 1:18 pm

It appears to be a real memory leak. I don't know why BCB doesn't properly release the exception object. Probably a bug in the RTL.

When an exception occurs in BCB, there's a lot of damage being done to the stack. In Delphi that's quite different. Stack tracing involves a lot of guessing (at least in x86 processes), as a result it can happen that there are missing or too many stack items in a callstack. With BCB, the danger is even higher than with Delphi.
madshi
Site Admin
 
Posts: 9822
Joined: Sun Mar 21, 2004 5:25 pm

Re: AV in MadExcept32.dll

Postby BugDigger » Sat Aug 11, 2012 7:54 am

Many thanks for information.

Could you please check this memory leak in XE2 (I have not this version of studio)?
If the problem still exists in the latest version it would be nice to file QC report on it to have a chance for fix in the next version.
BugDigger
 
Posts: 29
Joined: Sun Jun 17, 2012 10:10 am

Re: AV in MadExcept32.dll

Postby madshi » Mon Aug 13, 2012 8:43 am

Just checked. The leak seems to be fixed in BCB 2009 (and all newer versions).
madshi
Site Admin
 
Posts: 9822
Joined: Sun Mar 21, 2004 5:25 pm

Re: AV in MadExcept32.dll

Postby BugDigger » Mon Aug 13, 2012 9:48 am

OK, thank you for information.
BugDigger
 
Posts: 29
Joined: Sun Jun 17, 2012 10:10 am


Return to madCollection

Who is online

Users browsing this forum: No registered users and 5 guests

cron