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

Reply via email to