Re: breakpoint bug in the debugger
At the risk of beating an already dead horse, since setting a breakpoint on a "use" statement is likely to continue to cause confusions like this, I've added a hack in Devel::Trepan to see if the line that a breakpoint has been set at starts with the regexp /^\s*use\s+/. If so, a warning is issued given. The breakpoint is still set - it is just a warning. There are many ways that this heuristic can fail. For example setting a breakpoint on a line with: use English; $x = 3; may "skip" the "use" and still stop on the assignment statement. On Mon, Dec 19, 2011 at 12:20 AM, Rocky Bernstein wrote: > A while back on Tue, 31 May 2011 18:20:51 -0700 Conor wrote: > > Not exactly a high priority bug, but I found that if you set a breakpoint >> on >> a line where a 'use' statement exists, the breakpoint will show as set and >> the debugger won't complain: >> $ perl -d breakpoint-bug.pl >> Loading DB routines from perl5db.pl version 1.32 >> Editor support available. >> Enter h or `h h' for help, or `man perldebug' for more help. >> main::(breakpoint-bug.pl:7): >> 7: print "hello!\n"; >> DB<1> b 9 >> DB<2> v >> 4: use strict; >> 5: use warnings; >> 6 >> 7==> print "hello!\n"; >> 8 >> 9:b use Data::Dumper; >> 10 >> 11: print "goodbye!\n"; >> 12 >> 13: exit 0; >> DB<2> >> But, if you 'c' from line 7, you skip over the breakpoint on 9 as if it >> wasn't there. It isn't a huge problem (and I really should keep all of my >> 'use' statements at the beginning of the script), but I figured it was >> worth >> a mention. >> I couldn't figure out how to actually file a bug at http://rt.perl.organd >> http://search.cpan.org/~jesse/perl-5.14.0/lib/perl5db.pl didn't have the >> usual 'View/Report Bugs' that most modules have. I'm happy to file a bug >> if >> someone could point me in the right direction. >> -Conor > > > I just looked at this. I don't think there is a bug here. > > The code has a "use" statement. A breakpoint is set on that which the > reporter doesn't feel is respected. > However, recall that "use" happens at compile time and this occurs before > the first stop you see in the debugger. > > To verify this when I issued: > $Data::Dumper::VERSION from Devel::Trepan stopped at line 7, I got a > version string, e.g. '2.124'. (in perl5db use "p $Data::Dumper::VERSION" > > Change the "use" to a "require" which then changes the semantics, and > you'll things will work as you seem to expect it to would above. > > So in sum, I don't think there is a bug. Just perhaps confusion about how > execution works -- which I admit is confusing. > > >
Re: breakpoint bug in the debugger
A while back on Tue, 31 May 2011 18:20:51 -0700 Conor wrote: Not exactly a high priority bug, but I found that if you set a breakpoint on > a line where a 'use' statement exists, the breakpoint will show as set and > the debugger won't complain: > $ perl -d breakpoint-bug.pl > Loading DB routines from perl5db.pl version 1.32 > Editor support available. > Enter h or `h h' for help, or `man perldebug' for more help. > main::(breakpoint-bug.pl:7): > 7: print "hello!\n"; > DB<1> b 9 > DB<2> v > 4: use strict; > 5: use warnings; > 6 > 7==> print "hello!\n"; > 8 > 9:b use Data::Dumper; > 10 > 11: print "goodbye!\n"; > 12 > 13: exit 0; > DB<2> > But, if you 'c' from line 7, you skip over the breakpoint on 9 as if it > wasn't there. It isn't a huge problem (and I really should keep all of my > 'use' statements at the beginning of the script), but I figured it was > worth > a mention. > I couldn't figure out how to actually file a bug at http://rt.perl.org and > http://search.cpan.org/~jesse/perl-5.14.0/lib/perl5db.pl didn't have the > usual 'View/Report Bugs' that most modules have. I'm happy to file a bug if > someone could point me in the right direction. > -Conor I just looked at this. I don't think there is a bug here. The code has a "use" statement. A breakpoint is set on that which the reporter doesn't feel is respected. However, recall that "use" happens at compile time and this occurs before the first stop you see in the debugger. To verify this when I issued: $Data::Dumper::VERSION from Devel::Trepan stopped at line 7, I got a version string, e.g. '2.124'. (in perl5db use "p $Data::Dumper::VERSION" Change the "use" to a "require" which then changes the semantics, and you'll things will work as you seem to expect it to would above. So in sum, I don't think there is a bug. Just perhaps confusion about how execution works -- which I admit is confusing.
Re: breakpoint bug in the debugger
> On Tue, 31 May 2011 18:20:32 -0700, Conor said: > I couldn't figure out how to actually file a bug at http://rt.perl.org and > http://search.cpan.org/~jesse/perl-5.14.0/lib/perl5db.pl didn't have the > usual 'View/Report Bugs' that most modules have. I'm happy to file a bug if > someone could point me in the right direction. You type perlbug in your console and answer the questions. It will send a mail in the end. -- andreas
breakpoint bug in the debugger
Not exactly a high priority bug, but I found that if you set a breakpoint on a line where a 'use' statement exists, the breakpoint will show as set and the debugger won't complain: $ perl -d breakpoint-bug.pl Loading DB routines from perl5db.pl version 1.32 Editor support available. Enter h or `h h' for help, or `man perldebug' for more help. main::(breakpoint-bug.pl:7): 7: print "hello!\n"; DB<1> b 9 DB<2> v 4: use strict; 5: use warnings; 6 7==>print "hello!\n"; 8 9:b use Data::Dumper; 10 11: print "goodbye!\n"; 12 13: exit 0; DB<2> But, if you 'c' from line 7, you skip over the breakpoint on 9 as if it wasn't there. It isn't a huge problem (and I really should keep all of my 'use' statements at the beginning of the script), but I figured it was worth a mention. I couldn't figure out how to actually file a bug at http://rt.perl.org and http://search.cpan.org/~jesse/perl-5.14.0/lib/perl5db.pl didn't have the usual 'View/Report Bugs' that most modules have. I'm happy to file a bug if someone could point me in the right direction. -Conor breakpoint-bug.pl Description: Binary data