Page 1 of 1

Reported error

Posted: Fri Mar 17, 2017 8:35 am
by Han312
We get from one customer many madexcept errors like:
exception class : EAccessViolation
exception message : Zugriffsverletzung bei Adresse 0000000000411593 in Modul 'trw.exe'. Lesen von Adresse 0000002000000010.

main thread ($279c):
00411593 +013 trw.exe System TMonitor.Destroy
0041156c +01c trw.exe System TMonitor.Destroy
00410881 +061 trw.exe System TObject.CleanupInstance
0041048b +00b trw.exe System TObject.FreeInstance
004fb721 +021 trw.exe madExcept InterceptClassDestroy
exception class : EAccessViolation
exception message : Zugriffsverletzung bei Adresse 000000004100EF1F in Modul 'borlndmm.dll'. Lesen von Adresse 000000200F72EB10.

main thread ($279c):
4100ef1f +01f borlndmm.dll Borlndmm SysFreeMem
0040940f +00f trw.exe System @FreeMem
00410493 +013 trw.exe System TObject.FreeInstance
004fb721 +021 trw.exe madExcept InterceptClassDestroy
I don't remember that I have ever seen 'madExcept / InterceptClassDestroy' in any report before.
Is it correct to assume that something went really wrong before?
That computer is reporting also often "system"-errors like GDI. So I believe that that system has some serious problems.

The last time we got a set of 10 error messages within of 6 minutes, 4 of them were empty mails.
The screenshot of message 9 shows also the madexcept error window. I can see how the user is trying to click with the mouse on the X for closing the window.
What happens in that case? Continue application, restart application, close application or something else?

Re: Reported error

Posted: Fri Mar 17, 2017 9:11 am
by madshi
It looks like you have either memory corruption (e.g. buffer overrun), or your program is trying to release a memory block twice. Unfortunately these crashes are hard to debug.

I'd suggest that you try the option "instantly crash on buffer overrun" to see if that raises any red flags. However, the option currently only works for 32bit processes, and it consumes a lot of extra RAM. So there's a chance your program might out of RAM. But with a bit of luck it might work, and point you to a code location causing a buffer overrun.