Closed dj2 closed 8 years ago
To give an idea, the entries we have from the current test files for stack frames gives the following (filtered down from ~10k entries). The items below are [event.category, event.name] pairs.
["v8", " app:1"]
["v8", " http://dromaeo.com/jquery.js:1"]
["v8", " http://dromaeo.com/tests/dromaeo-object-array.html:12 {1}"]
["v8", "$Array.enumerable native v8natives.js:525"]
["v8", "/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontParser.dylib"]
["v8", "APIFunctions.registerUnavailable binding:36"]
["v8", "Date {1}"]
["v8", "Builtin:ArgumentsAdaptorTrampoline"]
["v8", "CallIC:A call IC from"]
["v8", "Function:~ :37"]
["v8", "Function:~ native harmony-object.js:2"]
["v8", "Handler:"]
["v8", "Handler:$toPrimitive"]
["v8", "KeyedLoadIC:A keyed load IC"]
["v8", "KeyedStoreIC:"]
["v8", "KeyedStoreIC:A keyed store IC"]
["v8", "KeyedStorePolymorphicIC:"]
["v8", "KeyedStorePolymorphicIC:0"]
["v8", "LazyCompile:"]
["v8", "LazyCompile: :1"]
["v8", "LazyCompile: chrome://tracing/tracing.js:1592"]
["v8", "LazyCompile: native v8natives.js:1199"]
["v8", "LazyCompile:$reflectApply"]
["v8", "LazyCompile:* chrome://tracing/tracing.js:1729"]
["v8", "LazyCompile:processEvent chrome://tracing/tracing.js:3018"]
["v8", "LazyCompile:~ :32"]
["v8", "LazyCompile:~ chrome://tracing/tracing.js:472"]
["v8", "LazyCompile:~ native v8natives.js:1199"]
["v8", "LazyCompile:~AddStaticStorageFunctionsToClass.inputclass.set chrome://tracing/tracing.js:163"]
["v8", "LoadIC:A load IC from"]
["v8", "RegExp"]
["v8", "RegExp:/*[^]?_/"]
["v8", "Script:~"]
["v8", "Script:~http://localhost:8000/"]
["v8", "Script:~native harmony-object.js"]
["v8", "StoreIC:A store IC from"]
["v8", "StorePolymorphicIC:childNodeCount"]
["v8", "Stub:ArgumentsAccessStub""]
["
@natduca I'm not seeing any frames with bare addresses in them in the current data. For the v8 frames we have addresses for each function and a code size, for the perf_sampling_trace_with_trace_events we have an id, category, name and parent id.
I think the [unknown] ones that have categories are the module + offset address. Looks like we made the choice in this to drop that instead of keep it in the file. @skyostil
The "", [unknown]" is the pc with no module.
Given that we're killing the v8.log file, I think what we have covers the v8 sampler code. We can file individual issues if we run into things that don't parse correctly.
We should have one clear place for each field, and a clear statement of what the fields value is when its missing.
The frame objects we should support
module: the linkage/shared-memory-segment unit, e.g. blink.so, v8 function: just the name line num: a number or undefined offset: an offset relative to a module's base address ptr: raw unresolved ptr