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 359 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
370 static void AfterGarbageCollection(); | 370 static void AfterGarbageCollection(); |
371 | 371 |
372 // Code generator routines. | 372 // Code generator routines. |
373 static void GenerateLoadICDebugBreak(MacroAssembler* masm); | 373 static void GenerateLoadICDebugBreak(MacroAssembler* masm); |
374 static void GenerateStoreICDebugBreak(MacroAssembler* masm); | 374 static void GenerateStoreICDebugBreak(MacroAssembler* masm); |
375 static void GenerateKeyedLoadICDebugBreak(MacroAssembler* masm); | 375 static void GenerateKeyedLoadICDebugBreak(MacroAssembler* masm); |
376 static void GenerateKeyedStoreICDebugBreak(MacroAssembler* masm); | 376 static void GenerateKeyedStoreICDebugBreak(MacroAssembler* masm); |
377 static void GenerateConstructCallDebugBreak(MacroAssembler* masm); | 377 static void GenerateConstructCallDebugBreak(MacroAssembler* masm); |
378 static void GenerateReturnDebugBreak(MacroAssembler* masm); | 378 static void GenerateReturnDebugBreak(MacroAssembler* masm); |
379 static void GenerateStubNoRegistersDebugBreak(MacroAssembler* masm); | 379 static void GenerateStubNoRegistersDebugBreak(MacroAssembler* masm); |
| 380 static void GeneratePlainReturnLiveEdit(MacroAssembler* masm); |
| 381 static void GenerateFrameDropperLiveEdit(MacroAssembler* masm); |
380 | 382 |
381 // Called from stub-cache.cc. | 383 // Called from stub-cache.cc. |
382 static void GenerateCallICDebugBreak(MacroAssembler* masm); | 384 static void GenerateCallICDebugBreak(MacroAssembler* masm); |
383 | 385 |
| 386 static void FramesHaveBeenDropped(StackFrame::Id new_break_frame_id); |
| 387 |
| 388 static void SetUpFrameDropperFrame(StackFrame* bottom_js_frame, |
| 389 Handle<Code> code); |
| 390 static const int kFrameDropperFrameSize; |
| 391 |
384 private: | 392 private: |
385 static bool CompileDebuggerScript(int index); | 393 static bool CompileDebuggerScript(int index); |
386 static void ClearOneShot(); | 394 static void ClearOneShot(); |
387 static void ActivateStepIn(StackFrame* frame); | 395 static void ActivateStepIn(StackFrame* frame); |
388 static void ClearStepIn(); | 396 static void ClearStepIn(); |
389 static void ActivateStepOut(StackFrame* frame); | 397 static void ActivateStepOut(StackFrame* frame); |
390 static void ClearStepOut(); | 398 static void ClearStepOut(); |
391 static void ClearStepNext(); | 399 static void ClearStepNext(); |
392 // Returns whether the compile succeeded. | 400 // Returns whether the compile succeeded. |
393 static void RemoveDebugInfo(Handle<DebugInfo> debug_info); | 401 static void RemoveDebugInfo(Handle<DebugInfo> debug_info); |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
439 // Frame pointer for frame from which step in was performed. | 447 // Frame pointer for frame from which step in was performed. |
440 Address step_into_fp_; | 448 Address step_into_fp_; |
441 | 449 |
442 // Frame pointer for the frame where debugger should be called when current | 450 // Frame pointer for the frame where debugger should be called when current |
443 // step out action is completed. | 451 // step out action is completed. |
444 Address step_out_fp_; | 452 Address step_out_fp_; |
445 | 453 |
446 // Storage location for jump when exiting debug break calls. | 454 // Storage location for jump when exiting debug break calls. |
447 Address after_break_target_; | 455 Address after_break_target_; |
448 | 456 |
| 457 // Indicates that LiveEdit has patched the stack. |
| 458 bool frames_are_dropped_; |
| 459 |
449 // Top debugger entry. | 460 // Top debugger entry. |
450 EnterDebugger* debugger_entry_; | 461 EnterDebugger* debugger_entry_; |
451 | 462 |
452 // Pending interrupts scheduled while debugging. | 463 // Pending interrupts scheduled while debugging. |
453 int pending_interrupts_; | 464 int pending_interrupts_; |
454 }; | 465 }; |
455 | 466 |
456 // Storage location for registers when handling debug break calls | 467 // Storage location for registers when handling debug break calls |
457 static JSCallerSavedBuffer registers_; | 468 static JSCallerSavedBuffer registers_; |
458 static ThreadLocal thread_local_; | 469 static ThreadLocal thread_local_; |
(...skipping 432 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
891 | 902 |
892 DISALLOW_COPY_AND_ASSIGN(MessageDispatchHelperThread); | 903 DISALLOW_COPY_AND_ASSIGN(MessageDispatchHelperThread); |
893 }; | 904 }; |
894 | 905 |
895 | 906 |
896 } } // namespace v8::internal | 907 } } // namespace v8::internal |
897 | 908 |
898 #endif // ENABLE_DEBUGGER_SUPPORT | 909 #endif // ENABLE_DEBUGGER_SUPPORT |
899 | 910 |
900 #endif // V8_DEBUG_H_ | 911 #endif // V8_DEBUG_H_ |
OLD | NEW |