Is it possible to find the perl line number, with backtrace, if possible, of where the error occurred?
Perl doesn't catch segfaults; so by the time it has occurred, perl has lost control and can do nothing.
Otherwise, maybe I should run Devel::Trace, or something similiar, while testing.
Devel::Trace slows things down horribly and produces reams of output. Try Devel::CallTrace instead.
A faulting program:
#! perl -slw use strict; sub segfault { my $x = unpack 'P', \ ""; } sub a { segfault(); } sub b { a(); } sub c{ b(); } c();
A run under Devel::CallTrace:
C:\test>perl -d:CallTrace junk.pl Devel::CallTrace::import (c:/perl64/site/lib/Devel/CallTrace.pm:75-78 +) CODE(0x276280) CODE(0x2762f8) strict::import (c:/perl64/lib/strict.pm:34-37) main::c (junk.pl:10-10) main::b (junk.pl:9-9) main::a (junk.pl:8-8) main::segfault (junk.pl:4-6)
Then, if the faulting subroutine is large, you can enable Devel::Trace on entry and disable it on exit to that one subroutine to get you down to the line number.
In reply to Re: How to find perl line after segfault.
by BrowserUk
in thread How to find perl line after segfault.
by Steve_BZ
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |