Index: vm/stack_frame.h |
=================================================================== |
--- vm/stack_frame.h (revision 6294) |
+++ vm/stack_frame.h (working copy) |
@@ -54,6 +54,10 @@ |
virtual bool IsEntryFrame() const { return false; } |
virtual bool IsExitFrame() const { return false; } |
+ // Find code object corresponding to pc (valid only for DartFrame and |
+ // StubFrame. |
+ static RawCode* LookupCode(Isolate* isolate, uword pc); |
+ |
protected: |
StackFrame() : fp_(0), sp_(0) { } |
@@ -61,6 +65,21 @@ |
virtual const char* GetName() const = 0; |
private: |
+ // An object finder visitor interface. |
+ class FindRawCodeVisitor : public FindObjectVisitor { |
+ public: |
+ explicit FindRawCodeVisitor(uword pc) : pc_(pc) { } |
+ virtual ~FindRawCodeVisitor() { } |
+ |
+ // Check if object matches find condition. |
+ virtual bool FindObject(RawObject* obj); |
+ |
+ private: |
+ uword pc_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(FindRawCodeVisitor); |
+ }; |
+ |
// Target specific implementations for locating pc and caller fp/sp values. |
static intptr_t PcAddressOffsetFromSp(); |
uword GetCallerSp() const; |