For anyone who didn’t see in in my other message.. the only reason I didn’t see the debug info before was because I was redirecting stderr to a file then echoing the file to the screen.. but with a full disk, no more could be written into my log file, therefore the file ended just before the error.
It’s the one case the logging stderr to a file the echoing the file to console could not work. Widnows doesn’t have a really good way to send output to the console and a file at the same time. In combination with this the errorcode being displayed as a negative number put it into the category of “things zero or less” which made my batch file treat it as a normal exit. It was my batch file that was failing to function correctly. James From: fpc-pascal <fpc-pascal-boun...@lists.freepascal.org> On Behalf Of James Richters Sent: Thursday, May 16, 2019 7:31 AM To: 'FPC-Pascal users discussions' <fpc-pascal@lists.freepascal.org> Subject: Re: [fpc-pascal] unexpected termination with no errors Once I fixed my batch file I am getting exactly this: An unhandled exception occurred at $004E4B4C: EInOutError: Disk Full $004E4B4C GETDATA, line 19078 of pastep.pas $004E9695 GETAFILE, line 19997 of pastep.pas $004EB74E GETALIPSE, line 20159 of pastep.pas $004E6884 LOADIT, line 19159 of pastep.pas $0041B86A main, line 4155 of i:/programming/gcode/mill/promill.pas Error Code: -1073741819 And yes my drive really is full. I am able to do a jump in my batch file based on the negative error code and send it to where all the other error conditions go. James From: fpc-pascal <fpc-pascal-boun...@lists.freepascal.org <mailto:fpc-pascal-boun...@lists.freepascal.org> > On Behalf Of Gary Doades Sent: Wednesday, May 15, 2019 12:11 PM To: fpc-pascal@lists.freepascal.org <mailto:fpc-pascal@lists.freepascal.org> Subject: Re: [fpc-pascal] unexpected termination with no errors Windows represents exception codes as an unsigned int. The error -1073741819 is actually 0xC0000005. This represents some form of access violation, usually associated with trying to write to freed memory, double freeing memory etc. If the stack is involved/corrupted then a trackback and useful information would be difficult. Whereabouts down the line a disk full translates into an access violation is difficult to say, but it results in a mess to say the least. Regards, Gary. On 15/05/2019 16:43, James Richters wrote: 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. 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. 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. Jim -----Original Message----- From: fpc-pascal <mailto:fpc-pascal-boun...@lists.freepascal.org> <fpc-pascal-boun...@lists.freepascal.org> On Behalf Of Karoly Balogh (Charlie/SGR) Sent: Wednesday, May 15, 2019 9:17 AM To: FPC-Pascal users discussions <mailto:fpc-pascal@lists.freepascal.org> <fpc-pascal@lists.freepascal.org> Subject: Re: [fpc-pascal] unexpected termination with no errors Hi, On Wed, 15 May 2019, James Richters wrote: Has anyone encountered anything like this before or know how I can make sure I always get the maximum amount of debugging info when my program crashes? Is it a subthreaded app? 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. (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...) In Linux/Darwin (on x64/ARM at least), only the thread causing the problem dies, no clue what happens under Windows. Maybe this helps. Charlie _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org <mailto:fpc-pascal@lists.freepascal.org> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org <mailto:fpc-pascal@lists.freepascal.org> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
_______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal