|
| ProfilerDartStackWalker (Thread *thread, Sample *sample, SampleBuffer *sample_buffer, uword pc, uword fp, uword sp, uword lr, bool allocation_sample, intptr_t skip_count=0) |
|
void | walk () |
|
| ProfilerStackWalker (Dart_Port port_id, Sample *head_sample, SampleBuffer *sample_buffer, intptr_t skip_count=0) |
|
bool | Append (uword pc, uword fp) |
|
| ValueObject () |
|
| ~ValueObject () |
|
Definition at line 995 of file profiler.cc.
◆ ProfilerDartStackWalker()
Definition at line 997 of file profiler.cc.
1007 ? thread->isolate()->main_port()
1009 sample,
1010 sample_buffer,
1011 skip_count),
1012 thread_(thread),
1013 pc_(reinterpret_cast<
uword*>(pc)),
1014 fp_(reinterpret_cast<
uword*>(
fp)),
1015 sp_(reinterpret_cast<
uword*>(sp)),
1016 lr_(reinterpret_cast<
uword*>(lr)) {}
ProfilerStackWalker(Dart_Port port_id, Sample *head_sample, SampleBuffer *sample_buffer, intptr_t skip_count=0)
◆ walk()
void dart::ProfilerDartStackWalker::walk |
( |
| ) |
|
|
inline |
Definition at line 1018 of file profiler.cc.
1018 {
1022 return;
1023 }
1024
1026 bool has_exit_frame = exit_fp != nullptr;
1027 if (has_exit_frame) {
1028
1029 pc_ = nullptr;
1030 fp_ = exit_fp;
1031
1032
1033 pc_ = CallerPC();
1034 fp_ = CallerFP();
1035 } else {
1036 if (thread_->
vm_tag() == VMTag::kDartTagId) {
1037
1038
1039
1040 } else {
1041
1043 }
1044
1045 const bool is_entry_frame =
1046#if defined(TARGET_ARCH_IA32) || defined(TARGET_ARCH_X64)
1049#else
1051#endif
1052 if (is_entry_frame) {
1053
1054
1055
1056
1057
1058
1060 return;
1061 }
1062 }
1063
1065
1066 for (;;) {
1067
1069 pc_ = nullptr;
1070 fp_ = ExitLink();
1071 if (fp_ == nullptr) {
1072 break;
1073 }
1074
1075
1076 pc_ = CallerPC();
1077 fp_ = CallerFP();
1078
1079
1082 }
1083
1085 break;
1086 }
1087
1088 pc_ = CallerPC();
1089 fp_ = CallerFP();
1090 }
1091 }
#define RELEASE_ASSERT(cond)
bool IsDeoptimizing() const
bool Append(uword pc, uword fp)
void set_ignore_sample(bool ignore_sample)
void set_exit_frame_sample(bool exit_frame_sample)
static bool HasBeenInitialized()
static bool InInvocationStub(uword pc)
uword top_exit_frame_info() const
Isolate * isolate() const
The documentation for this class was generated from the following file: