| Index: src/debug.h
|
| ===================================================================
|
| --- src/debug.h (revision 4816)
|
| +++ src/debug.h (working copy)
|
| @@ -146,6 +146,11 @@
|
| void SetDebugBreakAtReturn();
|
| void ClearDebugBreakAtReturn();
|
|
|
| + bool IsDebugBreakSlot();
|
| + bool IsDebugBreakAtSlot();
|
| + void SetDebugBreakAtSlot();
|
| + void ClearDebugBreakAtSlot();
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(BreakLocationIterator);
|
| };
|
|
|
| @@ -323,6 +328,7 @@
|
| enum AddressId {
|
| k_after_break_target_address,
|
| k_debug_break_return_address,
|
| + k_debug_break_slot_address,
|
| k_register_address
|
| };
|
|
|
| @@ -342,6 +348,12 @@
|
| return &debug_break_return_;
|
| }
|
|
|
| + // Access to the debug break in debug break slot code.
|
| + static Code* debug_break_slot() { return debug_break_slot_; }
|
| + static Code** debug_break_slot_address() {
|
| + return &debug_break_slot_;
|
| + }
|
| +
|
| static const int kEstimatedNofDebugInfoEntries = 16;
|
| static const int kEstimatedNofBreakPointsInFunction = 16;
|
|
|
| @@ -370,6 +382,7 @@
|
| static void AfterGarbageCollection();
|
|
|
| // Code generator routines.
|
| + static void GenerateSlot(MacroAssembler* masm);
|
| static void GenerateLoadICDebugBreak(MacroAssembler* masm);
|
| static void GenerateStoreICDebugBreak(MacroAssembler* masm);
|
| static void GenerateKeyedLoadICDebugBreak(MacroAssembler* masm);
|
| @@ -377,6 +390,7 @@
|
| static void GenerateConstructCallDebugBreak(MacroAssembler* masm);
|
| static void GenerateReturnDebugBreak(MacroAssembler* masm);
|
| static void GenerateStubNoRegistersDebugBreak(MacroAssembler* masm);
|
| + static void GenerateSlotDebugBreak(MacroAssembler* masm);
|
| static void GeneratePlainReturnLiveEdit(MacroAssembler* masm);
|
| static void GenerateFrameDropperLiveEdit(MacroAssembler* masm);
|
|
|
| @@ -472,6 +486,9 @@
|
| // Code to call for handling debug break on return.
|
| static Code* debug_break_return_;
|
|
|
| + // Code to call for handling debug break in debug break slots.
|
| + static Code* debug_break_slot_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(Debug);
|
| };
|
|
|
| @@ -895,6 +912,8 @@
|
| return reinterpret_cast<Address>(Debug::after_break_target_address());
|
| case Debug::k_debug_break_return_address:
|
| return reinterpret_cast<Address>(Debug::debug_break_return_address());
|
| + case Debug::k_debug_break_slot_address:
|
| + return reinterpret_cast<Address>(Debug::debug_break_slot_address());
|
| case Debug::k_register_address:
|
| return reinterpret_cast<Address>(Debug::register_address(reg_));
|
| default:
|
|
|