The XSUB-writer's equivalent of caller(). The returned
PERL_CONTEXT structure can be interrogated to find all the information returned to Perl by
caller. Note that XSUBs don't get a stack frame, so
caller_cx(0, NULL) will return information for the immediately-surrounding Perl code.
This function skips over the automatic calls to
&DB::sub made on the behalf of the debugger. If the stack frame requested was a sub called by
DB::sub, the return value will be the frame for the call to
DB::sub, since that has the correct line number/etc. for the call site. If dbcxp is non-
NULL, it will be set to a pointer to the frame for the sub call itself.
Check for the cases 0 or 3 of cur_env.je_ret, only used inside an eval context.
0 is used as continue inside eval,
3 is used for a die caught by an inner eval - continue inner loop
See cop.h: je_mustcatch, when set at any runlevel to TRUE, means eval ops must establish a local jmpenv to handle exception traps.
Locate the CV corresponding to the currently executing sub or eval. If db_seqp is non_null, skip CVs that are in the DB package and populate *db_seqp with the cop sequence number at the point that the DB:: code was entered. (allows debuggers to eval in the scope of the breakpoint rather than in the scope of the debugger itself).