<div dir="ltr"><div dir="ltr">Isn't that negative number 0xC0000005 in hex?  If that's the case, it's an Access Violation and not Disk Full.</div><div dir="ltr"><br></div><div>Jeff.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, May 15, 2019 at 11:44 AM James Richters <<a href="mailto:james@productionautomation.net">james@productionautomation.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">It's a simple single thread console app.   I found my problem...  years ago I implemented a batch file to run my program in the test environment to help be with debugging... and what it does is redirect the errors to a file so that if flashed by real quick, I would be able to just look at the file.   Then I just echo the file to the screen, and if I detect an error, I also pause so I can see it.    This a common solution to the windows limitation of not be capable directing STDERR to console AND to a file.   <br>
<br>
Well the file wasn't reporting the error and it wasn't on the screen... it looked like a normal exit, BUT it was actually giving me the proper report... unfortunately the error was the one thing that my batch file could not possibly display....  EInOutError: Disk Full   DOH!!!  With the disk full my log file could only show up to but not including the error... because it could not write anymore on a full disk... I still don't have a great solution for this... I see methods of implementing something like a Tee function on windows, but the problem is I don't want ALL the output to go to the log, I only want STDERR to go to the log file.... and the screen...  not my output I am sending with the CRT unit that sends colored text for various purposes.  This is such a pain with windows to accomplish this seemingly simple task.    Anyway I know what the problem is and can put in something to detect it.  Maybe I will just check if the errorlevel is negative and if so write a suggestion to the screen that disk full may have caused this and then pause.... since I can't necessarily write anything to the file.<br>
<br>
Does anyone know what the errorlevel for EInOutError: Disk Full is  -1073741819,   (I'm not sure it's always that number... ) is this on purpose?, or a bug?, or a side effect of the disk being full so it can't generate the correct error code?   if it was a normal errorcode I would have got that on my screen but since it's less than zero it got treated like a normal exit.... I did fix my batch file to treat anything less than zero as an error..... so it doesn't really matter, I just didn't know they could be negative, but I'm curious why this strange errorlevel.<br>
<br>
Jim<br>
<br>
<br>
-----Original Message-----<br>
From: fpc-pascal <<a href="mailto:fpc-pascal-bounces@lists.freepascal.org" target="_blank">fpc-pascal-bounces@lists.freepascal.org</a>> On Behalf Of Karoly Balogh (Charlie/SGR)<br>
Sent: Wednesday, May 15, 2019 9:17 AM<br>
To: FPC-Pascal users discussions <<a href="mailto:fpc-pascal@lists.freepascal.org" target="_blank">fpc-pascal@lists.freepascal.org</a>><br>
Subject: Re: [fpc-pascal] unexpected termination with no errors<br>
<br>
Hi,<br>
<br>
On Wed, 15 May 2019, James Richters wrote:<br>
<br>
> Has anyone encountered anything like this before or know how I can <br>
> make sure I always get the maximum amount of debugging info when my <br>
> program crashes?<br>
<br>
Is it a subthreaded app?<br>
<br>
The only case when I noticed something similar (under Linux though), when a certain subthread throws an exception, it just silently disappears without any further handling. It doesn't throw any exception, unless you wrap the entire Execute method in a try-except.<br>
<br>
(Sidenote: I've been pondering for a while if I should report this as a bug. I think the RTL should put a try-except around there, to show a stacktrace on unhandled exceptions, just like the main thread dying does, but who knows which Delphi de-facto standard behavior would that violate, so meh...)<br>
<br>
In Linux/Darwin (on x64/ARM at least), only the thread causing the problem dies, no clue what happens under Windows. Maybe this helps.<br>
<br>
Charlie<br>
_______________________________________________<br>
fpc-pascal maillist  -  <a href="mailto:fpc-pascal@lists.freepascal.org" target="_blank">fpc-pascal@lists.freepascal.org</a> <a href="http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal" rel="noreferrer" target="_blank">http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal</a><br>
_______________________________________________<br>
fpc-pascal maillist  -  <a href="mailto:fpc-pascal@lists.freepascal.org" target="_blank">fpc-pascal@lists.freepascal.org</a><br>
<a href="http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal" rel="noreferrer" target="_blank">http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal</a></blockquote></div>