On 9/13/07, Bruce Atherton <[EMAIL PROTECTED]> wrote: > 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. Or run it within a shell. - easy on unix using ant-contrib's shellscript <ac:shellscript shell="bash"> c_program </ac:shellscript>
> > 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] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]