| 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 #ifndef V8_FRAMES_H_ | 5 #ifndef V8_FRAMES_H_ |
| 6 #define V8_FRAMES_H_ | 6 #define V8_FRAMES_H_ |
| 7 | 7 |
| 8 #include "src/allocation.h" | 8 #include "src/allocation.h" |
| 9 #include "src/handles.h" | 9 #include "src/handles.h" |
| 10 #include "src/safepoint-table.h" | 10 #include "src/safepoint-table.h" |
| (...skipping 507 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 518 static inline Address* ResolveReturnAddressLocation(Address* pc_address); | 518 static inline Address* ResolveReturnAddressLocation(Address* pc_address); |
| 519 | 519 |
| 520 // Printing support. | 520 // Printing support. |
| 521 enum PrintMode { OVERVIEW, DETAILS }; | 521 enum PrintMode { OVERVIEW, DETAILS }; |
| 522 virtual void Print(StringStream* accumulator, | 522 virtual void Print(StringStream* accumulator, |
| 523 PrintMode mode, | 523 PrintMode mode, |
| 524 int index) const { } | 524 int index) const { } |
| 525 | 525 |
| 526 Isolate* isolate() const { return isolate_; } | 526 Isolate* isolate() const { return isolate_; } |
| 527 | 527 |
| 528 void operator=(const StackFrame& original) = delete; |
| 529 |
| 528 protected: | 530 protected: |
| 529 inline explicit StackFrame(StackFrameIteratorBase* iterator); | 531 inline explicit StackFrame(StackFrameIteratorBase* iterator); |
| 530 virtual ~StackFrame() { } | 532 virtual ~StackFrame() { } |
| 531 | 533 |
| 532 // Compute the stack pointer for the calling frame. | 534 // Compute the stack pointer for the calling frame. |
| 533 virtual Address GetCallerStackPointer() const = 0; | 535 virtual Address GetCallerStackPointer() const = 0; |
| 534 | 536 |
| 535 // Printing support. | 537 // Printing support. |
| 536 static void PrintIndex(StringStream* accumulator, | 538 static void PrintIndex(StringStream* accumulator, |
| 537 PrintMode mode, | 539 PrintMode mode, |
| (...skipping 18 matching lines...) Expand all Loading... |
| 556 | 558 |
| 557 // Get the type and the state of the calling frame. | 559 // Get the type and the state of the calling frame. |
| 558 virtual Type GetCallerState(State* state) const; | 560 virtual Type GetCallerState(State* state) const; |
| 559 | 561 |
| 560 static const intptr_t kIsolateTag = 1; | 562 static const intptr_t kIsolateTag = 1; |
| 561 | 563 |
| 562 friend class StackFrameIterator; | 564 friend class StackFrameIterator; |
| 563 friend class StackFrameIteratorBase; | 565 friend class StackFrameIteratorBase; |
| 564 friend class StackHandlerIterator; | 566 friend class StackHandlerIterator; |
| 565 friend class SafeStackFrameIterator; | 567 friend class SafeStackFrameIterator; |
| 566 | |
| 567 private: | |
| 568 void operator=(const StackFrame& original); | |
| 569 }; | 568 }; |
| 570 | 569 |
| 571 | 570 |
| 572 // Entry frames are used to enter JavaScript execution from C. | 571 // Entry frames are used to enter JavaScript execution from C. |
| 573 class EntryFrame: public StackFrame { | 572 class EntryFrame: public StackFrame { |
| 574 public: | 573 public: |
| 575 Type type() const override { return ENTRY; } | 574 Type type() const override { return ENTRY; } |
| 576 | 575 |
| 577 Code* unchecked_code() const override; | 576 Code* unchecked_code() const override; |
| 578 | 577 |
| (...skipping 739 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1318 | 1317 |
| 1319 | 1318 |
| 1320 // Reads all frames on the current stack and copies them into the current | 1319 // Reads all frames on the current stack and copies them into the current |
| 1321 // zone memory. | 1320 // zone memory. |
| 1322 Vector<StackFrame*> CreateStackMap(Isolate* isolate, Zone* zone); | 1321 Vector<StackFrame*> CreateStackMap(Isolate* isolate, Zone* zone); |
| 1323 | 1322 |
| 1324 } // namespace internal | 1323 } // namespace internal |
| 1325 } // namespace v8 | 1324 } // namespace v8 |
| 1326 | 1325 |
| 1327 #endif // V8_FRAMES_H_ | 1326 #endif // V8_FRAMES_H_ |
| OLD | NEW |