Could you show a sample patch that uses this?

On Mon, Apr 25, 2016 at 10:19 AM, Nick Fitzgerald <nfitzger...@mozilla.com>
wrote:

> Hi everyone!
>
> Friendly PSA: sometimes you're debugging a "leak" where the GC considers
> something reachable and therefore won't collect it, and this happens at an
> inopportune time for using the devtools memory panel (eg right before a
> DESTROY_RUNTIME collection), so you can't use the nice GUI for visualizing
> the GC's retaining paths.
>
> Fear not! You can use `JS::ubi::dumpPaths` to log retaining paths of any GC
> thing from within GDB, or you can compile it in as you might do with a
> tactically placed printf.
>
> The signature is `void JS::ubi::dumpPaths(JSRuntime* rt, JS::ubi::Node
> node, maxRetainingPaths = 10)`. The `rt` should be the runtime that the
> thing belongs to, `node` is the thing (JS::ubi::Node constructs from raw GC
> pointers as well as Rooted and Handle), and `maxRetainingPaths` is the
> number of retaining paths to dump.
>
> Include the "js/UbiNodeShortestPaths.h" header to get `JS::ubi::dumpPaths`.
>
> Happy bug hunting!
>
> Example output:
>
> Path 0:
>     0x7fff5fbfec10 JS::ubi::RootList
>             |
>             |
>         '<no edge name>'
>             |
>             V
>     0x115c49d80 JSObject
>             |
>             |
>         'shape'
>             |
>             V
>     0x12ac4db50 js::Shape
>             |
>             |
>         'base'
>             |
>             V
>     0x116244e70 js::BaseShape
>             |
>             |
>         'ShapeTable shape'
>             |
>             V
>     0x116289120 js::Shape
>             |
>             |
>         'getter'
>             |
>             V
>     0x11627b3a0 JSObject
>             |
>             |
>         'private'
>             |
>             V
>     0x11855d940 JSObject
>             |
>             |
>         'script'
>             |
>             V
>     0x113290bf0 JSScript
>             |
>             |
>         'sourceObject'
>             |
>             V
>     0x1132763c0 JSObject
>
> Full output: https://pastebin.mozilla.org/8868795
> _______________________________________________
> dev-developer-tools mailing list
> dev-developer-to...@lists.mozilla.org
> https://lists.mozilla.org/listinfo/dev-developer-tools
>
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to