Chromium Code Reviews| Index: include/v8.h |
| diff --git a/include/v8.h b/include/v8.h |
| index ec1941e6fd86eec42707e4d41011112961fe2109..1fe6bee30d1e90fa006dd8dd6b92695efcb8eb4f 100644 |
| --- a/include/v8.h |
| +++ b/include/v8.h |
| @@ -1415,6 +1415,27 @@ class V8_EXPORT StackFrame { |
| }; |
| +// A StateTag represents a possible state of the VM. |
| +enum StateTag { JS, GC, COMPILER, OTHER, EXTERNAL, IDLE }; |
| + |
| + |
| +// A RegisterState represents the current state of registers used |
| +// by the sampling profiler API. |
| +struct RegisterState { |
| + RegisterState() : pc(NULL), sp(NULL), fp(NULL) {} |
| + void* pc; // Instruction pointer. |
| + void* sp; // Stack pointer. |
| + void* fp; // Frame pointer. |
| +}; |
| + |
| + |
| +// The output structure filled up by GetStackSample API function. |
| +struct SampleInfo { |
| + size_t frames_count; |
|
loislo
2014/09/24 14:41:29
Can we join together both output structures i.e. t
alph
2014/09/24 14:57:39
It would be quite difficult for the embedder to co
|
| + StateTag vm_state; |
| +}; |
| + |
| + |
| /** |
| * A JSON Parser. |
| */ |
| @@ -4548,6 +4569,21 @@ class V8_EXPORT Isolate { |
| void GetHeapStatistics(HeapStatistics* heap_statistics); |
| /** |
| + * Get a call stack sample from the isolate. |
| + * \param state Execution state. |
| + * \param frames Caller allocated buffer to store stack frames. |
| + * \param frames_limit Maximum number of frames to capture. The buffer must |
| + * be large enough to hold the number of frames. |
| + * \param sample_info The sample info is filled up by the function |
| + * provides number of actual captured stack frames and |
| + * the current VM state. |
| + * \note GetStackSample should only be called when the JS thread is paused or |
| + * interrupted. Otherwise the behavior is undefined. |
| + */ |
| + void GetStackSample(const RegisterState& state, void** frames, |
| + size_t frames_limit, SampleInfo* sample_info); |
| + |
| + /** |
| * Adjusts the amount of registered external memory. Used to give V8 an |
| * indication of the amount of externally allocated memory that is kept alive |
| * by JavaScript objects. V8 uses this to decide when to perform global |