Re: Shark failing to get entire stack

Mike Shaver <[email protected]> Sat, 13 Nov 2010 13:32:58 -0800
Newsgroups gmane.comp.mozilla.performance
Message-ID <[email protected]>
On Sat, Nov 13, 2010 at 1:24 PM, Jonathan Watt <[email protected]> wrote:
> Last time I tried this sort of stuff on Windows I seem to remember that t=
he
> symbol and source servers allowed me to get full stacks when running rele=
ase
> builds. Maybe this isn't currently possible on Mac? But doesn't crash rep=
orter
> somehow figure out full stacks for mac crash reports?

The debugger can do it, profilers generally can't because the work
involved in correctly sampling the return addresses is much too high
for their sampling rates.  Profilers also can't do it on Windows,
generally.

You could just break in gdb and look at the stack that way, though, as
poor man's profiling.  Given the very high proportion of CPU that's
there, I suspect it wouldn't take too make interrupts to figure out
what you want.

> 0.0% =A0 0.1% =A0 Unknown Library =A00x102153000 [unknown]
> 0.1% =A0 0.1% =A0 XUL =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0nsDisplayItem::Recom=
puteVisibility
> 0.0% =A0 0.0% =A0 XUL =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0mozilla::FrameLa=
yerBuilder::DrawThebesLayer
> 0.0% =A0 0.0% =A0 XUL =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0nsRegion::Se=
tToElements(unsigned int)

I don't remember off-hand how to tell what library is loaded at that
address, but if symbolicating with the downloaded symbols doesn't
work, then I'm not sure there's much you can do other than disassemble
and poke with a debugger to see what's at that code address.

Mike