| OLD | NEW |
| 1 // Copyright 2006-2008 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2008 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 382 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 393 static void GenerateSlot(MacroAssembler* masm); | 393 static void GenerateSlot(MacroAssembler* masm); |
| 394 static void GenerateLoadICDebugBreak(MacroAssembler* masm); | 394 static void GenerateLoadICDebugBreak(MacroAssembler* masm); |
| 395 static void GenerateStoreICDebugBreak(MacroAssembler* masm); | 395 static void GenerateStoreICDebugBreak(MacroAssembler* masm); |
| 396 static void GenerateKeyedLoadICDebugBreak(MacroAssembler* masm); | 396 static void GenerateKeyedLoadICDebugBreak(MacroAssembler* masm); |
| 397 static void GenerateKeyedStoreICDebugBreak(MacroAssembler* masm); | 397 static void GenerateKeyedStoreICDebugBreak(MacroAssembler* masm); |
| 398 static void GenerateConstructCallDebugBreak(MacroAssembler* masm); | 398 static void GenerateConstructCallDebugBreak(MacroAssembler* masm); |
| 399 static void GenerateReturnDebugBreak(MacroAssembler* masm); | 399 static void GenerateReturnDebugBreak(MacroAssembler* masm); |
| 400 static void GenerateStubNoRegistersDebugBreak(MacroAssembler* masm); | 400 static void GenerateStubNoRegistersDebugBreak(MacroAssembler* masm); |
| 401 static void GenerateSlotDebugBreak(MacroAssembler* masm); | 401 static void GenerateSlotDebugBreak(MacroAssembler* masm); |
| 402 static void GeneratePlainReturnLiveEdit(MacroAssembler* masm); | 402 static void GeneratePlainReturnLiveEdit(MacroAssembler* masm); |
| 403 |
| 404 // FrameDropper is a code replacement for a JavaScript frame with possibly |
| 405 // several frames above. |
| 406 // There is no calling conventions here, because it never actually gets |
| 407 // called, it only gets returned to. |
| 403 static void GenerateFrameDropperLiveEdit(MacroAssembler* masm); | 408 static void GenerateFrameDropperLiveEdit(MacroAssembler* masm); |
| 404 | 409 |
| 405 // Called from stub-cache.cc. | 410 // Called from stub-cache.cc. |
| 406 static void GenerateCallICDebugBreak(MacroAssembler* masm); | 411 static void GenerateCallICDebugBreak(MacroAssembler* masm); |
| 407 | 412 |
| 408 // Describes how exactly a frame has been dropped from stack. | 413 // Describes how exactly a frame has been dropped from stack. |
| 409 enum FrameDropMode { | 414 enum FrameDropMode { |
| 410 // No frame has been dropped. | 415 // No frame has been dropped. |
| 411 FRAMES_UNTOUCHED, | 416 FRAMES_UNTOUCHED, |
| 412 // The top JS frame had been calling IC stub. IC stub mustn't be called now. | 417 // The top JS frame had been calling IC stub. IC stub mustn't be called now. |
| (...skipping 11 matching lines...) Expand all Loading... |
| 424 Object** restarter_frame_function_pointer); | 429 Object** restarter_frame_function_pointer); |
| 425 | 430 |
| 426 // Initializes an artificial stack frame. The data it contains is used for: | 431 // Initializes an artificial stack frame. The data it contains is used for: |
| 427 // a. successful work of frame dropper code which eventually gets control, | 432 // a. successful work of frame dropper code which eventually gets control, |
| 428 // b. being compatible with regular stack structure for various stack | 433 // b. being compatible with regular stack structure for various stack |
| 429 // iterators. | 434 // iterators. |
| 430 // Returns address of stack allocated pointer to restarted function, | 435 // Returns address of stack allocated pointer to restarted function, |
| 431 // the value that is called 'restarter_frame_function_pointer'. The value | 436 // the value that is called 'restarter_frame_function_pointer'. The value |
| 432 // at this address (possibly updated by GC) may be used later when preparing | 437 // at this address (possibly updated by GC) may be used later when preparing |
| 433 // 'step in' operation. | 438 // 'step in' operation. |
| 434 // The implementation is architecture-specific. | |
| 435 // TODO(LiveEdit): consider reviewing it as architecture-independent. | |
| 436 static Object** SetUpFrameDropperFrame(StackFrame* bottom_js_frame, | 439 static Object** SetUpFrameDropperFrame(StackFrame* bottom_js_frame, |
| 437 Handle<Code> code); | 440 Handle<Code> code); |
| 438 | 441 |
| 439 static const int kFrameDropperFrameSize; | 442 static const int kFrameDropperFrameSize; |
| 440 | 443 |
| 444 // Architecture-specific constant. |
| 445 static const bool kFrameDropperSupported; |
| 446 |
| 441 private: | 447 private: |
| 442 static bool CompileDebuggerScript(int index); | 448 static bool CompileDebuggerScript(int index); |
| 443 static void ClearOneShot(); | 449 static void ClearOneShot(); |
| 444 static void ActivateStepIn(StackFrame* frame); | 450 static void ActivateStepIn(StackFrame* frame); |
| 445 static void ClearStepIn(); | 451 static void ClearStepIn(); |
| 446 static void ActivateStepOut(StackFrame* frame); | 452 static void ActivateStepOut(StackFrame* frame); |
| 447 static void ClearStepOut(); | 453 static void ClearStepOut(); |
| 448 static void ClearStepNext(); | 454 static void ClearStepNext(); |
| 449 // Returns whether the compile succeeded. | 455 // Returns whether the compile succeeded. |
| 450 static void RemoveDebugInfo(Handle<DebugInfo> debug_info); | 456 static void RemoveDebugInfo(Handle<DebugInfo> debug_info); |
| (...skipping 560 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1011 | 1017 |
| 1012 DISALLOW_COPY_AND_ASSIGN(MessageDispatchHelperThread); | 1018 DISALLOW_COPY_AND_ASSIGN(MessageDispatchHelperThread); |
| 1013 }; | 1019 }; |
| 1014 | 1020 |
| 1015 | 1021 |
| 1016 } } // namespace v8::internal | 1022 } } // namespace v8::internal |
| 1017 | 1023 |
| 1018 #endif // ENABLE_DEBUGGER_SUPPORT | 1024 #endif // ENABLE_DEBUGGER_SUPPORT |
| 1019 | 1025 |
| 1020 #endif // V8_DEBUG_H_ | 1026 #endif // V8_DEBUG_H_ |
| OLD | NEW |