develooper Front page | perl.perl5.porters | Postings from July 2013

[perl #116819] endless loop debugging DosGlob

Thread Previous | Thread Next
From:
Father Chrysostomos via RT
Date:
July 18, 2013 01:00
Subject:
[perl #116819] endless loop debugging DosGlob
Message ID:
rt-3.6.HEAD-2552-1374109212-6.116819-15-0@perl.org
On Tue Jul 16 00:06:12 2013, sprout wrote:
> On Sun Feb 17 19:27:48 2013, craigberry wrote:
> > The commit in question adds an XS routine _callsite that consists
> >    entirely of:
> > 
> > SV *
> > _callsite(...)
> >     CODE:
> >        RETVAL = newSVpvn(
> >                   (char *)&cxstack[cxstack_ix].blk_sub.retop,
> >    sizeof(OP *)
> >                 );
> >     OUTPUT:
> >        RETVAL
> > 
> > I'm wondering why it's taking the address of retop since that is
> >    already of type OP*, but I may be misparsing this and don't have
> >    the time at the moment to dig deeper.
> 
> It’s reading the pointer as a string, to get the memory address of the op.
> 
> So presumably it’s getting confused because it is not stepping over the
> debugger’s call frames.  Or something like that.

Without actually confirming (or even looking at the code), I think it is
getting the address of the line in DB::sub that calls glob.

> I wonder whether Devel::Callsite has the same bug.

So yes, it probably does.

I don’t know offhand which is the best way to determine whether it
should be skipped.  I think pp_caller has something we can copy.

-- 

Father Chrysostomos


---
via perlbug:  queue: perl5 status: open
https://rt.perl.org:443/rt3/Ticket/Display.html?id=116819

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About