in reply to Re: lightweight stack info
in thread lightweight stack info

Thanks; it'd certainly be possible to locally disable the annotation (a $SIG{__DIE__} handler, it isn't Carp internals we're talking about at this point) when we know we're going to call certain things; but that's not really the intended use - the idea is that for *any* exception that ends up not getting caught we want to know the call stack where it was raised: this is a mechanism for helping us become aware of and diagnose bugs we don't know about yet, and disabling it in some places means either asserting those sections of code are guaranteed bug-free, or just accepting that bugs in those sections of code will be harder to diagnose (and we may miss them altogether).

As for doing the annotation at the point of catching: I don't think that helps us, we know what the call stack will look like at that point, it's what the call stack looked like at the point the exception was raised that's interesting.