I have a problem with Cygwin's Perl.  If a process started by Perl
(system(), `` (backticks) ) crashes, the system debugger never getsww
called so I can't get a dump.

I have submitted the problem (see
below) to this list but got no responses.  Can anyone suggest somewhere
else I might look for an answer?  Googling around the web, stackoverflow
 uncovered nothing.

Is there possibly some Cygwin configuration or installation options that might 
affect this issue?

Thanks in advance
Cheers,

Jim Cant


++++ Original Posting ++++
If a program started by Cygwin's Perl using backticks
fails do to a divide-by-zero, the Windos system debugger is not called;
it is called if another Perl (ActiveState) is used.


I have Perl  scripts that launch arbitrary processes
using backticks.
Occasionally, a crash will occur (zero divide, for example) and  I need
to
get a core dump for analysis when that happens.  These scripts run
unattended and a core dump needs to be generated automatically.

I have registered a perl script as crash handler with the operating
system (this in Windows 7 – I knew you wanted to know) which gets called
 with the PID of the crash; the handler attaches Microsoft’s ‘cdb’
debugger which creates the needed dump. My test ‘crasher’ program is a
C++ executable that does a divide-by-zero (Crasher.exe).



The Problem: When I use Cygwin’s Perl implementation, the program crash
never triggers the crash handler. My suspicion is that Perl is catching
the problem and silently dropping it. All works fine with a Perl from
ActiveState.



The Question: How can I get Cygwin’s Perl to get out of the way and let the 
error propagate all the way back to the system.
We use Cygwin's Perl on a lot of testing machines and are reluctant to change 
to another perl implementation.


Here’s an example that uses ActiveState perl that triggers the crash handler 
and produces a core dump

 C:> \tools\Perl\bin\perl.exe -e "`Crasher.exe`;"


But using Cygwin does not


C:> \cygwin\bin\perl.exe -e "`Crasher.exe`;"



Also, if I start Crasher.exe directly in Cygwin’s shell (rather than a Windows 
console window), the crash
handler is not called; neither is it called if started via backticks using
either Cygwin or ActriveState Perl in the Cygwin shell.



I thank you in advance for any help or suggestions!.                            
          

Reply via email to