Strange crash report

delphi package - automated exception handling
Post Reply
rlevis
Posts: 14
Joined: Wed Aug 08, 2007 12:40 am
Location: New Zealand

Strange crash report

Post by rlevis »

There are hundreds of people using this same app for several years and I've never seen a bug report like this one. Is it a hardware problem, perhaps bad RAM? See attachment.

Thanks,
Ross.
Attachments
crashreport.zip
(4.88 KiB) Downloaded 297 times
madshi
Site Admin
Posts: 10754
Joined: Sun Mar 21, 2004 5:25 pm

Re: Strange crash report

Post by madshi »

Can't say, there's simply not enough information to say anything useful. If it's a one-off crash report then I'd say just ignore it. Sometimes strange things happen for no reason we can know...
rlevis
Posts: 14
Joined: Wed Aug 08, 2007 12:40 am
Location: New Zealand

Re: Strange crash report

Post by rlevis »

It's not a one-off. It crashes every few hours for no apparent reason.
madshi
Site Admin
Posts: 10754
Joined: Sun Mar 21, 2004 5:25 pm

Re: Strange crash report

Post by madshi »

Ok, in that case we'll have to work with the little info we have. I suppose all crash reports look the same? The problem seems to be that in the moment when madExcept tries to create the bug report, there are even more exceptions happening *while creating the bug report*, inside of the memory manager. That suggests that the memory manager has gone unstable for some reason. A typical reason for that would be strong memory corruption, which can be caused by a variety of things, but the most usual one is buffer overruns.

Have you tried the "instantly crash on buffer overrun" feature in madExcept? Unfortunately it consumes a lot of RAM, so it's possible that your application will run into "out of RAM" issues when using it. But if we're lucky it might just work. If it does, buffer overruns (and also accesses to freed memory) should crash immediately. So you'll get even more crashes than before! However, the new crashes will produce much more helpful callstacks, showing you directly the source code line which is reponsible for a buffer overrun.

Please note that if you want this feature to work on the end user's PC, you have to distribute the "madExcept32.dll" with your EXE file. On your dev PC that's not necessary because there madExcept auto-locates the DLL if you have madExcept properly installed.
rlevis
Posts: 14
Joined: Wed Aug 08, 2007 12:40 am
Location: New Zealand

Re: Strange crash report

Post by rlevis »

I tried the buffer overrun check and distributed the required DLL, but this time the program just hung with no message. I've had to give up on that user.

I have another user with an access violation occurring in the same program, after operating for almost 7 days. The program simply records audio from DirectSound and sends it to a 3rd party DLL continuously, to encode the audio to a stream. The DLL has been in use for many years without modification, so it's not that. The program operates 24/7 for months at a time elsewhere.

I've uploaded the report file from this crash, and there is no code that I have written appearing. It looks like perhaps the program is shutting down due to the TComponent.Destroy, but the operator says no one was touching the program or computer at the time, and the screen shot doesn't suggest anything like that or a Windows Update restart, for example, so I don't know what's going on. Do you have any idea? Is it again a possible memory corruption?
Attachments
crashreport.zip
(6.6 KiB) Downloaded 291 times
madshi
Site Admin
Posts: 10754
Joined: Sun Mar 21, 2004 5:25 pm

Re: Strange crash report

Post by madshi »

It does seem that there's a "TCustomControl" which gets destroyed within the main thread's message handler. As a result TComponent.Notification tries to dereference a "nil" pointer. It's hard to say what's the cause of all this. Are you using "TSomeForm.Release" somewhere in your code?

Could also be that something gets freed twice or multiple times.
rlevis
Posts: 14
Joined: Wed Aug 08, 2007 12:40 am
Location: New Zealand

Re: Strange crash report

Post by rlevis »

I checked and no Release is being used anywhere in my code. :crazy:
Thanks for trying anyway.
Post Reply