Index: src/debug.h |
diff --git a/src/debug.h b/src/debug.h |
index 0eef0bc9a37d8179d52c3b9c48e7d3f93d5a287c..d7470d12352e398681763ceadfc4b23b0d1461b4 100644 |
--- a/src/debug.h |
+++ b/src/debug.h |
@@ -51,11 +51,7 @@ enum ExceptionBreakType { |
// Type of exception break. |
-enum BreakLocatorType { |
- ALL_BREAK_LOCATIONS = 0, |
- SOURCE_BREAK_LOCATIONS = 1, |
- CALLS_AND_RETURNS = 2 |
-}; |
+enum BreakLocatorType { ALL_BREAK_LOCATIONS, CALLS_AND_RETURNS }; |
// The different types of breakpoint position alignments. |
@@ -83,13 +79,16 @@ class BreakLocation { |
bool IsDebugBreak() const; |
inline bool IsExit() const { return RelocInfo::IsJSReturn(rmode_); } |
+ inline bool IsCall() const { |
+ return IsDebugBreakSlot() && RelocInfo::DebugBreakIsCall(data_); |
+ } |
inline bool IsConstructCall() const { |
- return RelocInfo::IsConstructCall(rmode_); |
+ return IsDebugBreakSlot() && RelocInfo::DebugBreakIsConstructCall(data_); |
+ } |
+ inline int CallArgumentsCount() const { |
+ DCHECK(IsCall()); |
+ return RelocInfo::DebugBreakCallArgumentsCount(data_); |
} |
- inline bool IsCodeTarget() const { return RelocInfo::IsCodeTarget(rmode_); } |
- |
- Handle<Code> CodeTarget() const; |
- Handle<Code> OriginalCodeTarget() const; |
bool IsStepInLocation() const; |
inline bool HasBreakPoint() const { |
@@ -104,28 +103,22 @@ class BreakLocation { |
void SetOneShot(); |
void ClearOneShot(); |
+ |
inline RelocInfo rinfo() const { |
return RelocInfo(pc(), rmode(), data_, code()); |
} |
- inline RelocInfo original_rinfo() const { |
- return RelocInfo(original_pc(), original_rmode(), original_data_, |
- original_code()); |
- } |
- |
inline int position() const { return position_; } |
inline int statement_position() const { return statement_position_; } |
inline Address pc() const { return code()->entry() + pc_offset_; } |
inline Address original_pc() const { |
- return original_code()->entry() + original_pc_offset_; |
+ return debug_info_->original_code()->entry() + original_pc_offset_; |
} |
inline RelocInfo::Mode rmode() const { return rmode_; } |
- inline RelocInfo::Mode original_rmode() const { return original_rmode_; } |
inline Code* code() const { return debug_info_->code(); } |
- inline Code* original_code() const { return debug_info_->original_code(); } |
private: |
BreakLocation(Handle<DebugInfo> debug_info, RelocInfo* rinfo, |
@@ -149,20 +142,13 @@ class BreakLocation { |
} |
inline RelocInfo::Mode rmode() { return reloc_iterator_.rinfo()->rmode(); } |
- inline RelocInfo::Mode original_rmode() { |
- return reloc_iterator_.rinfo()->rmode(); |
- } |
- |
inline RelocInfo* rinfo() { return reloc_iterator_.rinfo(); } |
inline RelocInfo* original_rinfo() { |
return reloc_iterator_original_.rinfo(); |
} |
inline Address pc() { return rinfo()->pc(); } |
- inline Address original_pc() { return original_rinfo()->pc(); } |
- |
int break_index() const { return break_index_; } |
- |
inline int position() const { return position_; } |
inline int statement_position() const { return statement_position_; } |
@@ -194,7 +180,6 @@ class BreakLocation { |
void SetDebugBreak(); |
void SetDebugBreakAtReturn(); |
void SetDebugBreakAtSlot(); |
- void SetDebugBreakAtIC(); |
inline bool IsDebuggerStatement() const { |
return RelocInfo::IsDebuggerStatement(rmode_); |
@@ -807,16 +792,7 @@ class SuppressDebug BASE_EMBEDDED { |
class DebugCodegen : public AllStatic { |
public: |
static void GenerateSlot(MacroAssembler* masm); |
- static void GenerateCallICStubDebugBreak(MacroAssembler* masm); |
- static void GenerateLoadICDebugBreak(MacroAssembler* masm); |
- static void GenerateStoreICDebugBreak(MacroAssembler* masm); |
- static void GenerateKeyedLoadICDebugBreak(MacroAssembler* masm); |
- static void GenerateKeyedStoreICDebugBreak(MacroAssembler* masm); |
- static void GenerateCompareNilICDebugBreak(MacroAssembler* masm); |
static void GenerateReturnDebugBreak(MacroAssembler* masm); |
- static void GenerateCallFunctionStubDebugBreak(MacroAssembler* masm); |
- static void GenerateCallConstructStubDebugBreak(MacroAssembler* masm); |
- static void GenerateCallConstructStubRecordDebugBreak(MacroAssembler* masm); |
static void GenerateSlotDebugBreak(MacroAssembler* masm); |
static void GeneratePlainReturnLiveEdit(MacroAssembler* masm); |