Re: Shark failing to get entire stack
Mike Shaver <[email protected]> Sat, 13 Nov 2010 12:28:10 -0800
| Newsgroups | gmane.comp.mozilla.performance |
|---|---|
| Message-ID | <[email protected]> |
On Sat, Nov 13, 2010 at 12:13 PM, Jonathan Watt <[email protected]> wrote: > I'm using Shark to try to profile a bug in the official FF4 beta 7 Mac bu= ild > which is causing Firefox to sit at 100% CPU, while minimized, with no tab= s of > interest (as far as I can tell) open. > > =A0 =A0 =A0 =A00.0% =A0 =A054.6% =A0 XUL =A0 =A0 nsCanvasRenderingContext= 2D:: > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0DrawIm= age(nsIDOMElement*, float, float, > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0fl= oat, float, float, float, float, > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0fl= oat, unsigned char) Are you compiling with frame pointer use enabled, such as via --enable-profiling? Without that the profiler can't look farther back, and by default we omit the frame pointer on x86 in order to have an extra register for our code. > I'm also seeing a lot of "Unknown Library" entries without symbols. For e= xample: > > =A0 =A0 =A0 =A00.0% =A0 =A00.3% =A0 =A0XUL =A0 =A0 js::mjit::JaegerShot(J= SContext*) > =A0 =A0 =A0 =A00.1% =A0 =A00.1% =A0 =A0Unknown Library =A00x1145ee000 [62= 1.5KB] > =A0 =A0 =A0 =A00.0% =A0 =A00.0% =A0 =A0XUL =A0 =A0 =A0js::mjit::stubs::Va= lueToBoolean(js::VMFrame&) > =A0 =A0 =A0 =A00.0% =A0 =A00.0% =A0 =A0XUL =A0 =A0 =A0js::mjit::stubs::Un= cachedCallHelper( > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 js::V= MFrame&, unsigned int, > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 js::m= jit::stubs::UncachedCallResult*) > =A0 =A0 =A0 =A00.0% =A0 =A00.0% =A0 =A0Unknown Library =A00x1327b3eb8 [un= known] > =A0 =A0 =A0 =A00.0% =A0 =A00.0% =A0 =A0Unknown Library =A00x1269e61c9 [un= known] > =A0 =A0 =A0 =A00.0% =A0 =A00.0% =A0 =A0Unknown Library =A00x1264fa228 [un= known] > =A0 =A0 =A0 =A00.0% =A0 =A00.0% =A0 =A0Unknown Library =A00x1264f4460 [un= known] > =A0 =A0 =A0 =A00.0% =A0 =A00.0% =A0 =A0Unknown Library =A00x1224fe2e4 [un= known] > =A0 =A0 =A0 =A00.0% =A0 =A00.0% =A0 =A0Unknown Library =A00x11d067c9e [un= known] > =A0 =A0 =A0 =A00.0% =A0 =A00.0% =A0 =A0Unknown Library =A00x11477febc [un= known] > > This is with KernelDebugKit mounted. Does anyone know how I can get Shark= to > identify these libraries and find the symbols for these things too? Those are almost certainly the code generated by the JS JITs, so there are no symbols to be loaded. Are they consuming a meaningful portion of the time? Mike