Hi all,

I am trying to work with the profiler API but I get an unexpected crash: I 
am probably doing something wrong but I can't figure what.. any help or 
hints would be appreciated!
>From the main thread I create an isolate and a context. Another thread is 
started that enters the created isolate and context, and then 
compiles/executes a script.
I have my own locking system that prevent using one isolate from differents 
threads at same time (before entering v8, or starting the profiler). I also 
tried to switch to v8::lockers but I have the same issue.

If I start the CpuProfiler from the main thread before starting my 
execution thread, I get an internal v8 crash from the v8::CpuProfiler 
thread while it iterates the stackframe.

Here is the stack where the crash occurs: 

 v8.dll!v8::internal::StandardFrame::IsArgumentsAdaptorFrame(unsigned char 
* fp)  Line 186 + 0xe bytes C++
 v8.dll!v8::internal::StackFrame::ComputeType(v8::internal::Isolate * 
isolate, v8::internal::StackFrame::State * state)  Line 443 + 0xe bytes C++
v8.dll!v8::internal::StackFrame::GetCallerState(v8::internal::StackFrame::State 
* state)  Line 469 C++
 
v8.dll!v8::internal::SafeStackFrameIterator::IsValidCaller(v8::internal::StackFrame
 
* frame)  Line 353 + 0x41 bytes C++
 v8.dll!v8::internal::SafeStackFrameIterator::Advance()  Line 306 + 0x4c 
bytes C++
 
v8.dll!v8::internal::JavaScriptFrameIteratorTemp<v8::internal::SafeStackFrameIterator>::Advance()
 
 Line 308 C++
 
v8.dll!v8::internal::JavaScriptFrameIteratorTemp<v8::internal::SafeStackFrameIterator>::JavaScriptFrameIteratorTemp<v8::internal::SafeStackFrameIterator>(v8::internal::Isolate
 
* isolate, unsigned char * fp, unsigned char * sp, unsigned char * 
low_bound, unsigned char * high_bound)  Line 829 + 0x1b bytes C++
 
v8.dll!v8::internal::SafeStackTraceFrameIterator::SafeStackTraceFrameIterator(v8::internal::Isolate
 
* isolate, unsigned char * fp, unsigned char * sp, unsigned char * 
low_bound, unsigned char * high_bound)  Line 371 + 0x4e bytes C++
 v8.dll!v8::internal::StackTracer::Trace(v8::internal::Isolate * isolate, 
v8::internal::TickSample * sample)  Line 143 + 0x48 bytes C++
 v8.dll!v8::internal::Ticker::DoSampleStack(v8::internal::TickSample * 
sample)  Line 185 C++
 v8.dll!v8::internal::Sampler::SampleStack(v8::internal::TickSample * 
sample)  Line 756 C++
 v8.dll!v8::internal::SamplerThread::SampleContext(v8::internal::Sampler * 
sampler)  Line 2080 C++
 v8.dll!v8::internal::SamplerThread::DoCpuProfile(v8::internal::Sampler * 
sampler, void * raw_sampler_thread)  Line 2050 C++
 v8.dll!v8::internal::SamplerRegistry::IterateActiveSamplers(void 
(v8::internal::Sampler *, void *)* func, void * param)  Line 1785 C++
 v8.dll!v8::internal::SamplerThread::Run()  Line 2037 C++
 v8.dll!v8::internal::ThreadEntry(void * arg)  Line 1602 C++


While the execution thread stack is:

v8.dll!v8::internal::ExitFrame::FillState(unsigned char * fp, unsigned char 
* sp, v8::internal::StackFrame::State * state)  Line 565 + 0x1 bytes C++
 v8.dll!v8::internal::ExitFrame::GetStateForFramePointer(unsigned char * 
fp, v8::internal::StackFrame::State * state)  Line 556 C++
 v8.dll!v8::internal::StackFrameIterator::Reset()  Line 168 + 0x1e bytes C++
 v8.dll!v8::internal::StackFrameIterator::StackFrameIterator()  Line 97 + 
0xa bytes C++
 v8.dll!v8::internal::IC::IC(v8::internal::IC::FrameDepth depth, 
v8::internal::Isolate * isolate)  Line 131 + 0xa bytes C++
 v8.dll!v8::internal::LoadIC::LoadIC(v8::internal::IC::FrameDepth depth, 
v8::internal::Isolate * isolate)  Line 345 + 0x2e bytes C++
 v8.dll!v8::internal::LoadIC_Miss(v8::internal::Arguments args, 
v8::internal::Isolate * isolate)  Line 1870 + 0x14 bytes C++
...


Any idea on how to debug the issue?
Thanks


-- 
-- 
v8-users mailing list
[email protected]
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 [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to