Listing 2.
Generating a Stack Trace in a CGI Script
Nathan Torkington
Perfect Programming
The Perl Journal, Fall 1997
  Generating a Stack Trace in a CGI Script

#!/usr/bin/perl -w



use Devel::DumpStack qw(stack_as_string);

use HTML::Entities;



sub my_die {

   select(STDOUT);$|=1;

   printf(<<"EOF", $?, $!, stack_as_string());

Content-Type: text/html



<HTML>

<HEAD>

<TITLE>System Error</TITLE>

</HEAD>



<BODY>

<H1>System Error</H1>

A seriously bad system error happened:<P>



<B>Exit Status</B>: %d<BR>

<B>Error String</B>: %s<P>



<B>Stack Dump</B>:

<PRE>

%s

</PRE>



</BODY>

</HTML>

EOF

  exit;

}



BEGIN {

  $SIG{_ _WARN_ _} = $SIG{_ _DIE_ _} = \&my_die;

}



$a = undef + 4;

exit;