Index: include/v8-profiler.h |
diff --git a/include/v8-profiler.h b/include/v8-profiler.h |
index 88a5fe027d7ab0ea49a28ce935fc87827067bdc4..bcb69f3763e1b76dfc48e215a7e2fad80f235cee 100644 |
--- a/include/v8-profiler.h |
+++ b/include/v8-profiler.h |
@@ -60,12 +60,47 @@ struct TickSample { |
frames_count(0), |
has_external_callback(false), |
update_stats(true) {} |
+ |
+ /** |
+ * Initialize a tick sample from the isolate. |
+ * \param isolate The isolate. |
+ * \param state Execution state. |
+ * \param record_c_entry_frame Include or skip the runtime function. |
+ * \param update_stats Whether update the sample to the aggregated stats. |
+ * \param use_simulator_reg_state When set to true and V8 is running under a |
+ * simulator, the method will use the simulator |
+ * register state rather than the one provided |
+ * with |state| argument. Otherwise the method |
+ * will use provided register |state| as is. |
+ */ |
void Init(Isolate* isolate, const v8::RegisterState& state, |
- RecordCEntryFrame record_c_entry_frame, bool update_stats); |
- static bool GetStackSample(Isolate* isolate, const v8::RegisterState& state, |
+ RecordCEntryFrame record_c_entry_frame, bool update_stats, |
+ bool use_simulator_reg_state = true); |
+ /** |
+ * Get a call stack sample from the isolate. |
+ * \param isolate The isolate. |
+ * \param state Register state. |
+ * \param record_c_entry_frame Include or skip the runtime function. |
+ * \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. |
+ * \param use_simulator_reg_state When set to true and V8 is running under a |
+ * simulator, the method will use the simulator |
+ * register state rather than the one provided |
+ * with |state| argument. Otherwise the method |
+ * will use provided register |state| as is. |
+ * \note GetStackSample is thread and signal safe and should only be called |
+ * when the JS thread is paused or interrupted. |
+ * Otherwise the behavior is undefined. |
+ */ |
+ static bool GetStackSample(Isolate* isolate, v8::RegisterState* state, |
RecordCEntryFrame record_c_entry_frame, |
void** frames, size_t frames_limit, |
- v8::SampleInfo* sample_info); |
+ v8::SampleInfo* sample_info, |
+ bool use_simulator_reg_state = true); |
StateTag state; // The state of the VM. |
void* pc; // Instruction pointer. |
union { |