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 |