Comment #16 on issue 11043 by bruce...@
chromium.org: ETW Instrumentation
https://bugs.chromium.org/p/v8/issues/detail?id=11043#c16I gave this a try today. I built a release build of Chromium with v8_enable_system_instrumentation=true, synced to today's version of code. I then recorded an ETW trace with Microsoft-JScript:0x3 added to the list of user-mode providers. I ran some JavaScript and got call stacks that look like this:
| | | | | | chrome.dll!blink::V8ScriptRunner::CallFunction
| | | | | | |- chrome.dll!v8::Function::Call
| | | | | | | chrome.dll!v8::internal::Execution::Call
| | | | | | | chrome.dll!v8::internal::`anonymous namespace'::Invoke
| | | | | | | ?!?
| | | | | | | ?!?
...
| | | | | | | | | | | |- ?!?
| | | | | | | | | | | | |- chrome.dll!v8::internal::Builtin_HandleApiCall
| | | | | | | | | | | | | chrome.dll!v8::internal::Builtin_Impl_HandleApiCall
| | | | | | | | | | | | | chrome.dll!v8::internal::`anonymous namespace'::HandleApiCallHelper<0>
| | | | | | | | | | | | | chrome.dll!v8::internal::FunctionCallbackArguments::Call
| | | | | | | | | | | | | chrome.dll!blink::`anonymous namespace'::v8_data_transfer_item::GetAsFileOperationCallback
| | | | | | | | | | | | | chrome.dll!blink::DataObjectItem::GetAsFile
The call stacks look good - there were 22 ?!? entries and it seems to make sense - but no function names.
I then tried again being careful to start tracing before launching Chromium (since there is no rundown support) and got the same results.
I then tried with Chrome stable - without these changes. Instead of ?!? I got lots of chrome.dll!Builtins_InterpreterEntryTrampoline, shown here:
| | | | | | | | | chrome.dll!blink::V8ScriptRunner::CallFunction
| | | | | | | | | |- chrome.dll!v8::Function::Call
| | | | | | | | | | chrome.dll!v8::internal::Execution::Call
| | | | | | | | | | chrome.dll!v8::internal::`anonymous namespace'::Invoke
| | | | | | | | | | chrome.dll!Builtins_JSEntry
| | | | | | | | | | chrome.dll!Builtins_JSEntryTrampoline
| | | | | | | | | | |- chrome.dll!Builtins_InterpreterEntryTrampoline
| | | | | | | | | | | chrome.dll!Builtins_InterpreterEntryTrampoline
| | | | | | | | | | | chrome.dll!Builtins_InterpreterEntryTrampoline
| | | | | | | | | | | chrome.dll!Builtins_InterpreterEntryTrampoline
| | | | | | | | | | | chrome.dll!Builtins_InterpreterEntryTrampoline
| | | | | | | | | | | chrome.dll!Builtins_InterpreterEntryTrampoline
| | | | | | | | | | | chrome.dll!Builtins_InterpreterEntryTrampoline
| | | | | | | | | | | chrome.dll!Builtins_InterpreterEntryTrampoline
| | | | | | | | | | | chrome.dll!Builtins_InterpreterEntryTrampoline
| | | | | | | | | | | chrome.dll!Builtins_InterpreterEntryTrampoline
| | | | | | | | | | | chrome.dll!Builtins_InterpreterEntryTrampoline
| | | | | | | | | | | chrome.dll!Builtins_InterpreterEntryTrampoline
| | | | | | | | | | | chrome.dll!Builtins_InterpreterEntryTrampoline
| | | | | | | | | | | |- chrome.dll!Builtins_InterpreterEntryTrampoline
| | | | | | | | | | | | |- chrome.dll!Builtins_InterpreterEntryTrampoline
| | | | | | | | | | | | | |- chrome.dll!Builtins_InterpreterEntryTrampoline
| | | | | | | | | | | | | | chrome.dll!Builtins_InterpreterEntryTrampoline
| | | | | | | | | | | | | | |- chrome.dll!Builtins_ArrayMap
| | | | | | | | | | | | | | | chrome.dll!Builtins_InterpreterEntryTrampoline
| | | | | | | | | | | | | | | |- chrome.dll!Builtins_CEntry_Return1_DontSaveFPRegs_ArgvOnStack_BuiltinExit
| | | | | | | | | | | | | | | | chrome.dll!v8::internal::Builtin_HandleApiCall
| | | | | | | | | | | | | | | | chrome.dll!v8::internal::Builtin_Impl_HandleApiCall
| | | | | | | | | | | | | | | | chrome.dll!v8::internal::`anonymous namespace'::HandleApiCallHelper<0>
| | | | | | | | | | | | | | | | chrome.dll!v8::internal::FunctionCallbackArguments::Call
| | | | | | | | | | | | | | | | chrome.dll!blink::`anonymous namespace'::GetAsFileOperationCallback
| | | | | | | | | | | | | | | | chrome.dll!blink::DataObjectItem::GetAsFile
I'm not sure what to make of this. I was using
https://evercoder.github.io/clipboard-inspector/ as a test site, pasting in a medium-sized bitmap from the clipboard.
My UIforETW changes can be found at
https://github.com/google/UIforETW/tree/jscript