This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Don’t record cop address for unbreakable lines
authorFather Chrysostomos <sprout@cpan.org>
Tue, 29 Oct 2013 04:22:14 +0000 (21:22 -0700)
committerFather Chrysostomos <sprout@cpan.org>
Tue, 29 Oct 2013 04:59:30 +0000 (21:59 -0700)
commit5a72d597d63bb674291c738afe00d11ae93eff4b
tree2685fddfb04b11b5680f43457ce985fa8cee5b1c
parent43e4250a611bbded7aab070226e8d756638cd569
Don’t record cop address for unbreakable lines

The cop (control op) address for each statement is recorded in
${"_<$file"}[$line] so that breakpoints set on that line will flag the
op for that statement.

Then, at run time, pp_dbstate checks to see whether the op is flagged
as having a breakpoint, and calls the debugger if so.

Statements that are not breakable are nextstate, rather than dbstate
ops, and pp_nextstate ignores the flag on the op.

In some instances, the cop address was being recorded for nextstate
ops.  This would happen in preamble code (e.g., the PERL5DB envi-
ronment variable or the -M switch) and when $^P contained 0x400
but not 0x02.

Recording the cop address for a nextstate op serves no purpose and is
a waste of CPU cycles.
op.c