RESOLVED FIXED 167614
The sampling profile should have an option to sample from C frames.
https://bugs.webkit.org/show_bug.cgi?id=167614
Summary The sampling profile should have an option to sample from C frames.
Keith Miller
Reported 2017-01-30 16:46:42 PST
The sampling profile should have an option to sample from C frames.
Attachments
WIP (11.48 KB, patch)
2017-01-30 16:51 PST, Keith Miller
no flags
Patch (11.71 KB, patch)
2017-01-31 09:39 PST, Keith Miller
no flags
Patch (11.66 KB, patch)
2017-01-31 11:14 PST, Keith Miller
no flags
Patch (11.66 KB, patch)
2017-01-31 11:14 PST, Keith Miller
no flags
Patch for landing (15.18 KB, patch)
2017-02-01 16:03 PST, Keith Miller
no flags
Patch for landing (15.18 KB, patch)
2017-02-01 16:04 PST, Keith Miller
no flags
Patch for landing (15.02 KB, patch)
2017-02-01 16:06 PST, Keith Miller
no flags
Keith Miller
Comment 1 2017-01-30 16:51:25 PST
Keith Miller
Comment 2 2017-01-31 09:39:39 PST
Keith Miller
Comment 3 2017-01-31 11:14:00 PST
Keith Miller
Comment 4 2017-01-31 11:14:50 PST
Saam Barati
Comment 5 2017-01-31 11:53:15 PST
Comment on attachment 300239 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=300239&action=review r=me > Source/JavaScriptCore/runtime/SamplingProfiler.cpp:228 > + resetAtMachineFrame(); I think you may want your own version of resetAtMachineFrame that also calls into the parent's version. The version here should probably veryify that: "isValidFramePointer(m_machineFrame)" > Source/JavaScriptCore/runtime/SamplingProfiler.cpp:608 > + stackTrace.frames.last().frameType = FrameType::Host; Why not add a new frame type? You can make the various functions that look at frame type for the inspector just skip over C frames for now. > Source/JavaScriptCore/runtime/SamplingProfiler.cpp:742 > +#if OS(DARWIN) > + if (Options::sampleCCode()) { > + const char* mangledName = nullptr; > + const char* cxaDemangled = nullptr; > + Dl_info info; > + if (dladdr(cCodePC, &info) && info.dli_sname) > + mangledName = info.dli_sname; > + if (mangledName) { > + cxaDemangled = abi::__cxa_demangle(mangledName, 0, 0, 0); > + return String(cxaDemangled ? cxaDemangled : mangledName); > + } > + } > +#endif Ditto about the FrameType.
Keith Miller
Comment 6 2017-02-01 16:03:57 PST
Created attachment 300362 [details] Patch for landing
Keith Miller
Comment 7 2017-02-01 16:04:22 PST
Created attachment 300364 [details] Patch for landing
Keith Miller
Comment 8 2017-02-01 16:06:52 PST
Created attachment 300365 [details] Patch for landing
WebKit Commit Bot
Comment 9 2017-02-01 17:25:03 PST
Comment on attachment 300365 [details] Patch for landing Clearing flags on attachment: 300365 Committed r211542: <http://trac.webkit.org/changeset/211542>
WebKit Commit Bot
Comment 10 2017-02-01 17:25:07 PST
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.