brycen has asked for the wisdom of the Perl Monks concerning the following question:
Let's say I have a subroutine that "dies". How can I determine what line called the subroutine? Debugger "Stack Trace" seems the obvious answer, but it does not work for me:
print "Hello\n"; a(0); print "Middle\n"; a(1); print "Goodbye\n"; sub a { $parameter = shift; if( $parameter ) { die }; } bash> perl -d test.pl Default die handler restored. Loading DB routines from perl5db.pl version 1.07 Editor support available. DB<1> c Hello Middle Died at test.pl line 10. Debugged program terminated. DB<1> T $ = DB::fake::at_exit() called from file /usr/local/lib/perl5/5.6.1/perl5db.pl' line 2697 $ = DB::END() called from file `test.pl' line 0 $ = eval {...} called from file `test.pl' line 0 DB<1>While it died at line 10, what line called the subroutine that died?
Back to
Seekers of Perl Wisdom