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 |