Nice. Glad to see my printers are going in as well, although it's a
teeny bit weird to have all the nsFoo printers residing under js/. I
volunteer to consult, if JS folk want to fix things but don't know
much about the GDB side of things.

Cheers,
Josh

On 2 August 2012 18:22, Jim Blandy <[email protected]> wrote:
> Hi, folks. I wrote a bunch of Python plug-in code for GDB to
> automatically display SpiderMonkey types in a meaningful way; for example:
>
> $ gdb obj~/js
> (gdb) b math_atan2
> Breakpoint 1 at 0x537b42: file /home/jimb/moz/archer/js/src/jsmath.cpp, line 
> 215.
> (gdb) run -e "Math.atan2('schnoo')"
> Starting program: /home/jimb/moz/archer/js/src/obj~/js -e 
> "Math.atan2('schnoo')"
>
> Breakpoint 1, math_atan2 (cx=0xc31470, argc=1, vp=0x7ffff17300a0) at 
> /home/jimb/moz/archer/js/src/jsmath.cpp:215
> 215         if (argc <= 1) {
> (gdb) print vp[2]
> $1 = $jsval("schnoo")
> (gdb) print vp[1]
> $2 = $jsval(0x7ffff1505080 [Object Math])
> (gdb) print vp[0]
> $3 = $jsval(0x7ffff1511d00 [Object Function "atan2"])
> (gdb)
>
>
> There's similar support for random stuff like parse nodes, property
> cache entries, and so on.
>
> For a long time, these have lived at:
> http://hg.mozilla.org/users/jblandy_mozilla.com/archer-mozilla/ However,
> I've started putting together a patch to integrate them into the Mozilla
> tree, so that anyone who uses a Python-capable GDB will get them
> automatically.
>
> Does this sound like a good idea?
>
> Possible questions and concerns:
>
>   * Which versions of GDB will this work with? I'm adapting the
>     pretty-printers to work with the stock GDB shipped with recent
>     Linuxes; no custom build should be required. Even recent Macintoshes
>     seem to ship with a Python-ignorant GDB, so it shouldn't affect them.
>   * What happens when a Python pretty-printer encounters an error, due
>     to a bug, say? Nowadays, GDB disables the pretty-printer, so things
>     degrade gracefully. I'd make sure this happens before landing anything.
>   * Who can I bug when there's a problem? I volunteer to be on call for
>     any GDB-Python related issues; there are some other folks on the
>     team who've hacked on this as well, and I hope they'll volunteer too.
>   * How are we going to keep the pretty-printers up to date with the
>     current SpiderMonkey code? SpiderMonkey has changed quickly over the
>     last couple of years, and the printers have been prone to bit-rot.
>     Here, I'm asking to impose on the rest of you: I suspect that having
>     these printers in-tree will make problems show up more quickly, so
>     we can stay on top of things.
>
> I'm picking up Bug 506717
> <https://bugzilla.mozilla.org/show_bug.cgi?id=506717> for the process of
> integration.
>
> My current work in progress is at
> https://github.com/jimblandy/mozilla-central. In particular, take a look
> at the integrate-archer
> <https://github.com/jimblandy/mozilla-central/tree/integrate-archer> branch.
> _______________________________________________
> dev-tech-js-engine-internals mailing list
> [email protected]
> https://lists.mozilla.org/listinfo/dev-tech-js-engine-internals
_______________________________________________
dev-tech-js-engine-internals mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-js-engine-internals

Reply via email to