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_DEBUG_H_ | 5 #ifndef V8_DEBUG_H_ |
6 #define V8_DEBUG_H_ | 6 #define V8_DEBUG_H_ |
7 | 7 |
8 #include "allocation.h" | 8 #include "allocation.h" |
9 #include "arguments.h" | 9 #include "arguments.h" |
10 #include "assembler.h" | 10 #include "assembler.h" |
(...skipping 388 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
399 Handle<FixedArray> GetLoadedScripts(); | 399 Handle<FixedArray> GetLoadedScripts(); |
400 | 400 |
401 // Record function from which eval was called. | 401 // Record function from which eval was called. |
402 static void RecordEvalCaller(Handle<Script> script); | 402 static void RecordEvalCaller(Handle<Script> script); |
403 | 403 |
404 // Garbage collection notifications. | 404 // Garbage collection notifications. |
405 void AfterGarbageCollection(); | 405 void AfterGarbageCollection(); |
406 | 406 |
407 // Code generator routines. | 407 // Code generator routines. |
408 static void GenerateSlot(MacroAssembler* masm); | 408 static void GenerateSlot(MacroAssembler* masm); |
| 409 static void GenerateCallICStubDebugBreak(MacroAssembler* masm); |
409 static void GenerateLoadICDebugBreak(MacroAssembler* masm); | 410 static void GenerateLoadICDebugBreak(MacroAssembler* masm); |
410 static void GenerateStoreICDebugBreak(MacroAssembler* masm); | 411 static void GenerateStoreICDebugBreak(MacroAssembler* masm); |
411 static void GenerateKeyedLoadICDebugBreak(MacroAssembler* masm); | 412 static void GenerateKeyedLoadICDebugBreak(MacroAssembler* masm); |
412 static void GenerateKeyedStoreICDebugBreak(MacroAssembler* masm); | 413 static void GenerateKeyedStoreICDebugBreak(MacroAssembler* masm); |
413 static void GenerateCompareNilICDebugBreak(MacroAssembler* masm); | 414 static void GenerateCompareNilICDebugBreak(MacroAssembler* masm); |
414 static void GenerateReturnDebugBreak(MacroAssembler* masm); | 415 static void GenerateReturnDebugBreak(MacroAssembler* masm); |
415 static void GenerateCallFunctionStubDebugBreak(MacroAssembler* masm); | 416 static void GenerateCallFunctionStubDebugBreak(MacroAssembler* masm); |
416 static void GenerateCallFunctionStubRecordDebugBreak(MacroAssembler* masm); | |
417 static void GenerateCallConstructStubDebugBreak(MacroAssembler* masm); | 417 static void GenerateCallConstructStubDebugBreak(MacroAssembler* masm); |
418 static void GenerateCallConstructStubRecordDebugBreak(MacroAssembler* masm); | 418 static void GenerateCallConstructStubRecordDebugBreak(MacroAssembler* masm); |
419 static void GenerateSlotDebugBreak(MacroAssembler* masm); | 419 static void GenerateSlotDebugBreak(MacroAssembler* masm); |
420 static void GeneratePlainReturnLiveEdit(MacroAssembler* masm); | 420 static void GeneratePlainReturnLiveEdit(MacroAssembler* masm); |
421 | 421 |
422 // FrameDropper is a code replacement for a JavaScript frame with possibly | 422 // FrameDropper is a code replacement for a JavaScript frame with possibly |
423 // several frames above. | 423 // several frames above. |
424 // There is no calling conventions here, because it never actually gets | 424 // There is no calling conventions here, because it never actually gets |
425 // called, it only gets returned to. | 425 // called, it only gets returned to. |
426 static void GenerateFrameDropperLiveEdit(MacroAssembler* masm); | 426 static void GenerateFrameDropperLiveEdit(MacroAssembler* masm); |
427 | 427 |
428 // Called from stub-cache.cc. | |
429 static void GenerateCallICDebugBreak(MacroAssembler* masm); | |
430 | |
431 // Describes how exactly a frame has been dropped from stack. | 428 // Describes how exactly a frame has been dropped from stack. |
432 enum FrameDropMode { | 429 enum FrameDropMode { |
433 // No frame has been dropped. | 430 // No frame has been dropped. |
434 FRAMES_UNTOUCHED, | 431 FRAMES_UNTOUCHED, |
435 // The top JS frame had been calling IC stub. IC stub mustn't be called now. | 432 // The top JS frame had been calling IC stub. IC stub mustn't be called now. |
436 FRAME_DROPPED_IN_IC_CALL, | 433 FRAME_DROPPED_IN_IC_CALL, |
437 // The top JS frame had been calling debug break slot stub. Patch the | 434 // The top JS frame had been calling debug break slot stub. Patch the |
438 // address this stub jumps to in the end. | 435 // address this stub jumps to in the end. |
439 FRAME_DROPPED_IN_DEBUG_SLOT_CALL, | 436 FRAME_DROPPED_IN_DEBUG_SLOT_CALL, |
440 // The top JS frame had been calling some C++ function. The return address | 437 // The top JS frame had been calling some C++ function. The return address |
(...skipping 595 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1036 Mutex mutex_; | 1033 Mutex mutex_; |
1037 bool already_signalled_; | 1034 bool already_signalled_; |
1038 | 1035 |
1039 DISALLOW_COPY_AND_ASSIGN(MessageDispatchHelperThread); | 1036 DISALLOW_COPY_AND_ASSIGN(MessageDispatchHelperThread); |
1040 }; | 1037 }; |
1041 | 1038 |
1042 | 1039 |
1043 } } // namespace v8::internal | 1040 } } // namespace v8::internal |
1044 | 1041 |
1045 #endif // V8_DEBUG_H_ | 1042 #endif // V8_DEBUG_H_ |
OLD | NEW |