| OLD | NEW |
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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/profiler/sampler.h" | 5 #include "src/profiler/sampler.h" |
| 6 | 6 |
| 7 #if V8_OS_POSIX && !V8_OS_CYGWIN | 7 #if V8_OS_POSIX && !V8_OS_CYGWIN |
| 8 | 8 |
| 9 #define USE_SIGNALS | 9 #define USE_SIGNALS |
| 10 | 10 |
| (...skipping 665 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 676 pc = 0; | 676 pc = 0; |
| 677 return; | 677 return; |
| 678 } | 678 } |
| 679 | 679 |
| 680 ExternalCallbackScope* scope = isolate->external_callback_scope(); | 680 ExternalCallbackScope* scope = isolate->external_callback_scope(); |
| 681 Address handler = Isolate::handler(isolate->thread_local_top()); | 681 Address handler = Isolate::handler(isolate->thread_local_top()); |
| 682 // If there is a handler on top of the external callback scope then | 682 // If there is a handler on top of the external callback scope then |
| 683 // we have already entrered JavaScript again and the external callback | 683 // we have already entrered JavaScript again and the external callback |
| 684 // is not the top function. | 684 // is not the top function. |
| 685 if (scope && scope->scope_address() < handler) { | 685 if (scope && scope->scope_address() < handler) { |
| 686 external_callback = scope->callback(); | 686 external_callback_entry = *scope->callback_entrypoint_address(); |
| 687 has_external_callback = true; | 687 has_external_callback = true; |
| 688 } else { | 688 } else { |
| 689 // sp register may point at an arbitrary place in memory, make | 689 // sp register may point at an arbitrary place in memory, make |
| 690 // sure MSAN doesn't complain about it. | 690 // sure MSAN doesn't complain about it. |
| 691 MSAN_MEMORY_IS_INITIALIZED(regs.sp, sizeof(Address)); | 691 MSAN_MEMORY_IS_INITIALIZED(regs.sp, sizeof(Address)); |
| 692 // Sample potential return address value for frameless invocation of | 692 // Sample potential return address value for frameless invocation of |
| 693 // stubs (we'll figure out later, if this value makes sense). | 693 // stubs (we'll figure out later, if this value makes sense). |
| 694 tos = Memory::Address_at(reinterpret_cast<Address>(regs.sp)); | 694 tos = Memory::Address_at(reinterpret_cast<Address>(regs.sp)); |
| 695 has_external_callback = false; | 695 has_external_callback = false; |
| 696 } | 696 } |
| (...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 870 SampleStack(state); | 870 SampleStack(state); |
| 871 } | 871 } |
| 872 ResumeThread(profiled_thread); | 872 ResumeThread(profiled_thread); |
| 873 } | 873 } |
| 874 | 874 |
| 875 #endif // USE_SIGNALS | 875 #endif // USE_SIGNALS |
| 876 | 876 |
| 877 | 877 |
| 878 } // namespace internal | 878 } // namespace internal |
| 879 } // namespace v8 | 879 } // namespace v8 |
| OLD | NEW |