| 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/sampler.h" | 5 #include "src/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 605 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 616 sample_info->frames_count = 0; | 616 sample_info->frames_count = 0; |
| 617 sample_info->vm_state = isolate->current_vm_state(); | 617 sample_info->vm_state = isolate->current_vm_state(); |
| 618 if (sample_info->vm_state == GC) return; | 618 if (sample_info->vm_state == GC) return; |
| 619 | 619 |
| 620 Address js_entry_sp = isolate->js_entry_sp(); | 620 Address js_entry_sp = isolate->js_entry_sp(); |
| 621 if (js_entry_sp == 0) return; // Not executing JS now. | 621 if (js_entry_sp == 0) return; // Not executing JS now. |
| 622 | 622 |
| 623 SafeStackFrameIterator it(isolate, reinterpret_cast<Address>(regs.fp), | 623 SafeStackFrameIterator it(isolate, reinterpret_cast<Address>(regs.fp), |
| 624 reinterpret_cast<Address>(regs.sp), js_entry_sp); | 624 reinterpret_cast<Address>(regs.sp), js_entry_sp); |
| 625 size_t i = 0; | 625 size_t i = 0; |
| 626 if (!it.done() && it.top_frame_type() == StackFrame::EXIT) { |
| 627 frames[i++] = isolate->c_function(); |
| 628 } |
| 626 while (!it.done() && i < frames_limit) { | 629 while (!it.done() && i < frames_limit) { |
| 627 frames[i++] = it.frame()->pc(); | 630 frames[i++] = it.frame()->pc(); |
| 628 it.Advance(); | 631 it.Advance(); |
| 629 } | 632 } |
| 630 sample_info->frames_count = i; | 633 sample_info->frames_count = i; |
| 631 } | 634 } |
| 632 | 635 |
| 633 | 636 |
| 634 void Sampler::SetUp() { | 637 void Sampler::SetUp() { |
| 635 #if defined(USE_SIGNALS) | 638 #if defined(USE_SIGNALS) |
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 754 #endif // USE_SIMULATOR | 757 #endif // USE_SIMULATOR |
| 755 SampleStack(state); | 758 SampleStack(state); |
| 756 } | 759 } |
| 757 ResumeThread(profiled_thread); | 760 ResumeThread(profiled_thread); |
| 758 } | 761 } |
| 759 | 762 |
| 760 #endif // USE_SIGNALS | 763 #endif // USE_SIGNALS |
| 761 | 764 |
| 762 | 765 |
| 763 } } // namespace v8::internal | 766 } } // namespace v8::internal |
| OLD | NEW |