Another strange bugreport

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

Another strange bugreport

Post by rlevis »

Someone else with a crash occurring in the same program, but slightly different report this time. There is a Halt(0) being executed. What executes this? There was no computer shutdown occurring, Windows Updates are disabled, and the user was not closing the program down manually. The program can't close itself down. Any ideas most welcome.

system up time : 6 days 19 hours
program up time : 6 days 19 hours

exception message : Access violation at address 00485313 in module 'SPLStreamer.exe'. Read of address 00000010.

main thread ($874):
00485313 SPLStreamer.exe Classes 9907 +8 TComponent.Notification
004b5adf SPLStreamer.exe Controls 3372 +1 TControl.Notification
004a8758 SPLStreamer.exe Forms 2688 +1 TCustomForm.Notification
00485313 SPLStreamer.exe Classes 9907 +8 TComponent.Notification
004851e5 SPLStreamer.exe Classes 9842 +2 TComponent.RemoveComponent
00485059 SPLStreamer.exe Classes 9764 +9 TComponent.Destroy
004b5873 SPLStreamer.exe Controls 3242 +15 TControl.Destroy
004b8cf1 SPLStreamer.exe Controls 5439 +26 TWinControl.Destroy
004beae5 SPLStreamer.exe Controls 8901 +2 TCustomControl.Destroy
00404264 SPLStreamer.exe System TObject.Free
004b0242 SPLStreamer.exe Forms 7182 +10 TApplication.SetShowHint
004a68af SPLStreamer.exe Forms 1349 +1 DoneApplication
00467a92 SPLStreamer.exe SysUtils 3409 +6 DoExitProc
00404ff3 SPLStreamer.exe System @Halt0
0053f1d5 SPLStreamer.exe SPLStreamer 30 +8 initialization

What could be useful in a future MadExcept is for the current time to be output on each line so we know what function was called when.
madshi
Site Admin
Posts: 10753
Joined: Sun Mar 21, 2004 5:25 pm

Re: Another strange bugreport

Post by madshi »

What does SPLStreamer.pas/dpr do in line 30? Does that happen to be the "end." of the dpr?

It does look to me that the application was closing down. And while doing so, the RTL tried to release form, and that crashed. Probably because the form was already freed before.
What could be useful in a future MadExcept is for the current time to be output on each line so we know what function was called when.
That's technically not possible. madExcept only becomes active in the moment when the crash occurs and the information you're suggesting to add is not available at that point in time, anymore. The only way to collect that information would be to run a full debugger on your application, logging every function call any thread ever does. But doing that would noticeably slow down everything.
rlevis
Posts: 14
Joined: Wed Aug 08, 2007 12:40 am
Location: New Zealand

Re: Another strange bugreport

Post by rlevis »

I understand regarding reporting time.
madshi wrote:What does SPLStreamer.pas/dpr do in line 30? Does that happen to be the "end." of the dpr?
Application.Run is on line 24 in the DPR and that is right at the end. There is no line 30. There is no Initialization procedure in the main form PAS. So that's rather peculiar.

Perhaps Windows is closing Streamer down because of some issue which doesn't activate MadExcept for some reason, and then MadExcept activates due to an issue closing down. Does Windows send a Halt0 to a program? I've never seen that before in a bugreport.txt and I've seen a few.

The operator is adamant that he wasn't using the computer at the time, and the screen shot doesn't show Windows shutting down at all.

I know your not here to debug other peoples software so many thanks for anything you can suggest.

The program was up almost 7 days. I'm stumped.
madshi
Site Admin
Posts: 10753
Joined: Sun Mar 21, 2004 5:25 pm

Re: Another strange bugreport

Post by madshi »

At the end of the dpr's "end.", there's a hidden call to "Halt0" added by the Delphi RTL. That's how a Delphi process shuts down. So it's pretty clear to me that "Application.Run" returned, which means your main form was most likely closed. Either by the user or by some other application or the OS.

Of course that's just my interpretation of the information I have. I could be wrong.
Post Reply