Hello,
I am working with software that is utilizing CEF3 and therefore V8. I am trying to diagnose an issue that might be caused by an infrequent JavaScript infinite loop. Furthermore I would like to understand a process generating reasonable diagnostic logging when such an issue occurs.
It would be ideal if I could invoke a CEF method to stop the JavaScript thread's execution and generate a callstack of the thread, but this doesn't seem to be currently possible.
It was suggested that I might be able to get more information by debugging the CEF renderer process. As such I've introduce an infinite loop for testing purposes and debugged. However I am not able to get understandable information from the debugger as the callstack seems to become incomprehensible near the calls into V8/javascript execution.
That is in visual studio I see a callstack like:
// The first entry is the code location, the second is the language. There are many more Unknown language items above this point omitted for clarity.
...
5bb0cb1d() Unknown
5bb108a4() Unknown
5bb0bd31() Unknown
libcef.dll!v8::internal::`anonymous namespace'::Invoke(v8::internal::Isolate * isolate, bool is_construct, v8::internal::Handle<v8::internal::Object> target, v8::internal::Handle<v8::internal::Object> receiver, int argc, v8::internal::Handle<v8::internal::Object> * args, v8::internal::Handle<v8::internal::Object> new_target, v8::internal::Execution::MessageHandling message_handling, v8::internal::Execution::Target execution_target) Line 155 C++
libcef.dll!v8::internal::Execution::Call(v8::internal::Isolate * isolate, v8::internal::Handle<v8::internal::Object> callable, v8::internal::Handle<v8::internal::Object> receiver, int argc, v8::internal::Handle<v8::internal::Object> * argv) Line 202 C++
...
Is there some way to get more information about the Unknown language items in the call stack? I can see the disassembly, but that is not very understandable.
Or perhaps there is some other suggestion on how I might generate a call stack of a JavaScript execution that runs too long?
Many thanks,
Grant Baltare