I'm trying to debug an electron app that is getting stuck in C++ code being called by javascript, so I've decided to use v8 gdbjit integration to get javascript stack trace from gdb. I've set `v8_enable_gdbjit` gn build argument to `true` and also passed `--gdbjit` argument to v8, but the renderer seems to be getting stuck in a call to `RemoveJITCodeEntries`. Here's part of the stack:
#0 0x00007ffff6850d24 in (anonymous namespace)::(anonymous namespace)::(anonymous namespace)::RemoveJITCodeEntries ( map=<optimized out>, range=...) at ../../v8/src/gdb-jit.cc:2090 #1 (anonymous namespace)::(anonymous namespace)::(anonymous namespace)::AddCode (name=<optimized out>, code=<optimized out>, shared=<optimized out>, lineinfo=<optimized out>) at ../../v8/src/gdb-jit.cc:2148 #2 (anonymous namespace)::(anonymous namespace)::(anonymous namespace)::EventHandler (event=<optimized out>) at ../../v8/src/gdb-jit.cc:2192 #3 0x00007ffff69607b2 in (anonymous namespace)::(anonymous namespace)::JitLogger::LogRecordedBuffer ( this=<optimized out>, code=<optimized out>, shared=<optimized out>, name=<optimized out>, length=<optimized out>) at ../../v8/src/log.cc:462 #4 0x00007ffff655f7f0 in (anonymous namespace)::(anonymous namespace)::CodeEventDispatcher::CodeCreateEvent ( this=<optimized out>, tag=<optimized out>, code=<optimized out>, shared=<optimized out>, name=<optimized out>) at ../../v8/src/code-events.h:142 #5 0x00007ffff655a480 in (anonymous namespace)::(anonymous namespace)::(anonymous namespace)::CompileToplevel ( info=<optimized out>) at ../../v8/src/compiler.cc:1175 More specifically, it gets stuck in the following loop at the beginning of the function: static void RemoveJITCodeEntries(CodeMap* map, const AddressRange& range) { DCHECK(range.start < range.end); CodeMap::Locator cur; if (map->FindGreatestLessThan(range, &cur) || map->FindLeast(&cur)) { // Skip entries that are entirely less than the range of interest. while (cur.key().end <= range.start) { // CodeMap::FindLeastGreaterThan succeeds for entries whose key is greater // than _or equal to_ the given key, so we have to advance our key to get // the next one. AddressRange new_key; new_key.start = cur.key().end; new_key.end = 0; if (!map->FindLeastGreaterThan(new_key, &cur)) return; } Is there anything I can do to work around this, or is there an alternative to gdbjit that would allow me to get javascript stack from C++? -- -- v8-users mailing list v8-users@googlegroups.com http://groups.google.com/group/v8-users --- You received this message because you are subscribed to the Google Groups "v8-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to v8-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.