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

Reply via email to