| 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/profiler/profile-generator.h" | 5 #include "src/profiler/profile-generator.h" | 
| 6 | 6 | 
| 7 #include "src/ast/scopeinfo.h" | 7 #include "src/ast/scopeinfo.h" | 
| 8 #include "src/debug/debug.h" | 8 #include "src/debug/debug.h" | 
| 9 #include "src/deoptimizer.h" | 9 #include "src/deoptimizer.h" | 
| 10 #include "src/global-handles.h" | 10 #include "src/global-handles.h" | 
| (...skipping 590 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 601   // ProfileNode to increase the tick count for this source line. | 601   // ProfileNode to increase the tick count for this source line. | 
| 602   int src_line = v8::CpuProfileNode::kNoLineNumberInfo; | 602   int src_line = v8::CpuProfileNode::kNoLineNumberInfo; | 
| 603   bool src_line_not_found = true; | 603   bool src_line_not_found = true; | 
| 604 | 604 | 
| 605   if (sample.pc != NULL) { | 605   if (sample.pc != NULL) { | 
| 606     if (sample.has_external_callback && sample.state == EXTERNAL && | 606     if (sample.has_external_callback && sample.state == EXTERNAL && | 
| 607         sample.top_frame_type == StackFrame::EXIT) { | 607         sample.top_frame_type == StackFrame::EXIT) { | 
| 608       // Don't use PC when in external callback code, as it can point | 608       // Don't use PC when in external callback code, as it can point | 
| 609       // inside callback's code, and we will erroneously report | 609       // inside callback's code, and we will erroneously report | 
| 610       // that a callback calls itself. | 610       // that a callback calls itself. | 
| 611       entries.push_back(code_map_.FindEntry(sample.external_callback)); | 611       entries.push_back(code_map_.FindEntry(sample.external_callback_entry)); | 
| 612     } else { | 612     } else { | 
| 613       CodeEntry* pc_entry = code_map_.FindEntry(sample.pc); | 613       CodeEntry* pc_entry = code_map_.FindEntry(sample.pc); | 
| 614       // If there is no pc_entry we're likely in native code. | 614       // If there is no pc_entry we're likely in native code. | 
| 615       // Find out, if top of stack was pointing inside a JS function | 615       // Find out, if top of stack was pointing inside a JS function | 
| 616       // meaning that we have encountered a frameless invocation. | 616       // meaning that we have encountered a frameless invocation. | 
| 617       if (!pc_entry && (sample.top_frame_type == StackFrame::JAVA_SCRIPT || | 617       if (!pc_entry && (sample.top_frame_type == StackFrame::JAVA_SCRIPT || | 
| 618                         sample.top_frame_type == StackFrame::INTERPRETED || | 618                         sample.top_frame_type == StackFrame::INTERPRETED || | 
| 619                         sample.top_frame_type == StackFrame::OPTIMIZED)) { | 619                         sample.top_frame_type == StackFrame::OPTIMIZED)) { | 
| 620         pc_entry = code_map_.FindEntry(sample.tos); | 620         pc_entry = code_map_.FindEntry(sample.tos); | 
| 621       } | 621       } | 
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 709     case EXTERNAL: | 709     case EXTERNAL: | 
| 710       return program_entry_; | 710       return program_entry_; | 
| 711     case IDLE: | 711     case IDLE: | 
| 712       return idle_entry_; | 712       return idle_entry_; | 
| 713     default: return NULL; | 713     default: return NULL; | 
| 714   } | 714   } | 
| 715 } | 715 } | 
| 716 | 716 | 
| 717 }  // namespace internal | 717 }  // namespace internal | 
| 718 }  // namespace v8 | 718 }  // namespace v8 | 
| OLD | NEW | 
|---|