char* Debug::ArchiveDebug(char* storage) {
// Simply reset state. Don't archive anything.
ThreadInit();
return storage + ArchiveSpacePerThread();
}
char* Debug::RestoreDebug(char* storage) {
// Simply reset state. Don't restore anything.
ThreadInit();
return storage + ArchiveSpacePerThread();
}
int Debug::ArchiveSpacePerThread() { return 0; }
Call stack:
Actual sequence:
1. While step by step debugging stop on API exported from C++ that does following
2.a. Unlock v8 via v8::Unlocker
2.b. Set native event
2.c. Meanwhile other C++ thread will wake, lock v8 via v8::Locker, issue JS callback, unlock v8
2.d. Wait for confirmation from that other C++ thread
2.e. Lock v8 again in destuctor of v8::Unlocker
3. After return from that API debugger does not stop any more because inside of Debug::Break(JavaScriptFrame* frame)
call to last_step_action(); now returns StepNone instead ofStepNext and JS continues to run instead of stopping on next JS statement.
--
--
v8-users mailing list
v8-u...@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+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
static thread_local ThreadLocal thread_local_;
//Make thread_local_ really thread_local :)
thread_local Debug::ThreadLocal Debug::thread_local_;
char* Debug::ArchiveDebug(char* storage) {
// Leave thread_local storage as is in thread_local memory
return storage + ArchiveSpacePerThread();
}
char* Debug::RestoreDebug(char* storage) {
// Leave thread_local storage as is in thread_local memory
return storage + ArchiveSpacePerThread();
}
To unsubscribe from this group and stop receiving emails from it, send an email to v8-users+u...@googlegroups.com.