Index: src/frames.h |
diff --git a/src/frames.h b/src/frames.h |
index 57ed9aed623c16de13cd98caf212c6d032eeae64..6ae143cc070c65b8b378686cb38164a3613f07ae 100644 |
--- a/src/frames.h |
+++ b/src/frames.h |
@@ -35,7 +35,7 @@ |
namespace v8 { |
namespace internal { |
-#if defined(V8_TARGET_ARCH_A64) |
+#if V8_TARGET_ARCH_A64 |
typedef uint64_t RegList; |
#else |
typedef uint32_t RegList; |
@@ -301,6 +301,10 @@ class StackFrame BASE_EMBEDDED { |
static void SetReturnAddressLocationResolver( |
ReturnAddressLocationResolver resolver); |
+ // Resolves pc_address through the resolution address function if one is set. |
+ static inline Address* ResolveReturnAddressLocation(Address* pc_address); |
+ |
+ |
// Printing support. |
enum PrintMode { OVERVIEW, DETAILS }; |
virtual void Print(StringStream* accumulator, |
@@ -336,6 +340,8 @@ class StackFrame BASE_EMBEDDED { |
Isolate* isolate_; |
State state_; |
+ static ReturnAddressLocationResolver return_address_location_resolver_; |
+ |
// Fill in the state of the calling frame. |
virtual void ComputeCallerState(State* state) const = 0; |
@@ -879,11 +885,13 @@ class SafeStackFrameIterator: public StackFrameIteratorBase { |
public: |
SafeStackFrameIterator(Isolate* isolate, |
Address fp, Address sp, |
- Address low_bound, Address high_bound); |
+ Address js_entry_sp); |
inline JavaScriptFrame* frame() const; |
void Advance(); |
+ StackFrame::Type top_frame_type() const { return top_frame_type_; } |
+ |
private: |
void AdvanceOneFrame(); |
@@ -897,6 +905,7 @@ class SafeStackFrameIterator: public StackFrameIteratorBase { |
const Address low_bound_; |
const Address high_bound_; |
+ StackFrame::Type top_frame_type_; |
}; |