OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/api.h" | 5 #include "src/api.h" |
6 | 6 |
7 #include <string.h> // For memcpy, strlen. | 7 #include <string.h> // For memcpy, strlen. |
8 #ifdef V8_USE_ADDRESS_SANITIZER | 8 #ifdef V8_USE_ADDRESS_SANITIZER |
9 #include <sanitizer/asan_interface.h> | 9 #include <sanitizer/asan_interface.h> |
10 #endif // V8_USE_ADDRESS_SANITIZER | 10 #endif // V8_USE_ADDRESS_SANITIZER |
(...skipping 7532 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7543 } | 7543 } |
7544 | 7544 |
7545 void Isolate::GetStackSample(const RegisterState& state, void** frames, | 7545 void Isolate::GetStackSample(const RegisterState& state, void** frames, |
7546 size_t frames_limit, SampleInfo* sample_info) { | 7546 size_t frames_limit, SampleInfo* sample_info) { |
7547 i::Isolate* isolate = reinterpret_cast<i::Isolate*>(this); | 7547 i::Isolate* isolate = reinterpret_cast<i::Isolate*>(this); |
7548 #if defined(USE_SIMULATOR) | 7548 #if defined(USE_SIMULATOR) |
7549 RegisterState regs; | 7549 RegisterState regs; |
7550 regs.pc = state.pc; | 7550 regs.pc = state.pc; |
7551 regs.sp = state.sp; | 7551 regs.sp = state.sp; |
7552 regs.fp = state.fp; | 7552 regs.fp = state.fp; |
7553 i::SimulatorHelper::FillRegisters(isolate, ®s); | 7553 if (!i::SimulatorHelper::FillRegisters(isolate, ®s)) { |
| 7554 sample_info->frames_count = 0; |
| 7555 sample_info->vm_state = OTHER; |
| 7556 sample_info->external_callback_entry = nullptr; |
| 7557 return; |
| 7558 } |
7554 #else | 7559 #else |
7555 const RegisterState& regs = state; | 7560 const RegisterState& regs = state; |
7556 #endif | 7561 #endif |
7557 i::TickSample::GetStackSample(isolate, regs, i::TickSample::kSkipCEntryFrame, | 7562 i::TickSample::GetStackSample(isolate, regs, i::TickSample::kSkipCEntryFrame, |
7558 frames, frames_limit, sample_info); | 7563 frames, frames_limit, sample_info); |
7559 } | 7564 } |
7560 | 7565 |
7561 size_t Isolate::NumberOfPhantomHandleResetsSinceLastCall() { | 7566 size_t Isolate::NumberOfPhantomHandleResetsSinceLastCall() { |
7562 i::Isolate* isolate = reinterpret_cast<i::Isolate*>(this); | 7567 i::Isolate* isolate = reinterpret_cast<i::Isolate*>(this); |
7563 size_t result = isolate->global_handles()->NumberOfPhantomHandleResets(); | 7568 size_t result = isolate->global_handles()->NumberOfPhantomHandleResets(); |
(...skipping 1335 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8899 Address callback_address = | 8904 Address callback_address = |
8900 reinterpret_cast<Address>(reinterpret_cast<intptr_t>(callback)); | 8905 reinterpret_cast<Address>(reinterpret_cast<intptr_t>(callback)); |
8901 VMState<EXTERNAL> state(isolate); | 8906 VMState<EXTERNAL> state(isolate); |
8902 ExternalCallbackScope call_scope(isolate, callback_address); | 8907 ExternalCallbackScope call_scope(isolate, callback_address); |
8903 callback(info); | 8908 callback(info); |
8904 } | 8909 } |
8905 | 8910 |
8906 | 8911 |
8907 } // namespace internal | 8912 } // namespace internal |
8908 } // namespace v8 | 8913 } // namespace v8 |
OLD | NEW |