As hinted at previously, the DevTools group would like to introduce a
new representation of saved (not live) JS stacks to SpiderMonkey. Our
immediate need is to record the stacks at which JS objects are
allocated, for our memory profiling tools, but we'd like to introduce
something general enough that Error, and other sorts of captured stacks,
could switch to using it.
The representation that Nick Fitzgerald and I have prototyped:
- shares common old-end tails of captured stacks;
- retains principal information for each frame, so that stack traces can
omit privileged frames in unprivileged contexts, but show full
information in privileged contexts (unlike Error's present behavior,
which entirely forgets frames that the capturing context shouldn't see);
- will support the optimizations described before on this list:
https://groups.google.com/forum/#!msg/mozilla.dev.tech.js-engine.internals/crDZ1vU7hkY/uYg3xxD552oJ
<https://groups.google.com/forum/#%21msg/mozilla.dev.tech.js-engine.internals/crDZ1vU7hkY/uYg3xxD552oJ>
We're discussing our prototype design in bug 972045, but since we want
this to be part of SpiderMonkey, we can only proceed with a design that
the team would look forward to.
The patch soon to be attached there will simply add the stack
representation, along with a TestingFunctions.cpp primitive that
captures stacks, and unit tests, for the time being.
_______________________________________________
dev-tech-js-engine-internals mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-js-engine-internals