It is entirely possible that the output never reaches Ant. The standard C library is typically set up to buffer data on the standard file handles, for efficiency purposes.

To get around this, you could:

1) do a flush() on the stdout and stderr streams before the segmentation fault (assuming you know where it is). 2) replace the standard file handles with ones that do not buffer anything. 3) you might be able to write a signal handler for SIGSEGV to do the flush(), I'm not sure.

If this is a C program that you can't alter the code for, then the only place you might be able to find what was output is somewhere inside the core dump, which isn't terribly practical.

As for detecting the segmentation fault, you could always look for the core dump file, assuming the system generates one.

venki wrote:
Hi,
I am using org.apache.tools.ant.taskdefs.Execute combined with
org.apache.tools.ant.taskdefs.PumpStreamHandler to execute an external C
program. When the external C program segfaults, I am not able to to see any
output that came from the external C program before it segfaults. Also, I am
not able to see the 'segmentation fault' message in the stream output. Any
help to solve this would be useful.

Thanks.

Venki


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to