Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(63)

Side by Side Diff: src/debug/debug.h

Issue 2738503006: [inspector] don't make v8::debug::Call for breakProgram. (Closed)
Patch Set: fixed tests Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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_DEBUG_H_ 5 #ifndef V8_DEBUG_DEBUG_H_
6 #define V8_DEBUG_DEBUG_H_ 6 #define V8_DEBUG_DEBUG_H_
7 7
8 #include "src/allocation.h" 8 #include "src/allocation.h"
9 #include "src/assembler.h" 9 #include "src/assembler.h"
10 #include "src/base/atomicops.h" 10 #include "src/base/atomicops.h"
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 58
59 enum DebugBreakType { 59 enum DebugBreakType {
60 NOT_DEBUG_BREAK, 60 NOT_DEBUG_BREAK,
61 DEBUGGER_STATEMENT, 61 DEBUGGER_STATEMENT,
62 DEBUG_BREAK_SLOT, 62 DEBUG_BREAK_SLOT,
63 DEBUG_BREAK_SLOT_AT_CALL, 63 DEBUG_BREAK_SLOT_AT_CALL,
64 DEBUG_BREAK_SLOT_AT_RETURN, 64 DEBUG_BREAK_SLOT_AT_RETURN,
65 DEBUG_BREAK_SLOT_AT_TAIL_CALL, 65 DEBUG_BREAK_SLOT_AT_TAIL_CALL,
66 }; 66 };
67 67
68 enum IgnoreBreakMode { kAllFramesBlackboxed, kTopFrameBlackboxed };
dgozman 2017/03/09 23:04:01 kIgnoreIfAllFramesBlackboxed, kIgnoreIfTopFrameBla
kozy 2017/03/10 03:14:55 Done.
69
68 class BreakLocation { 70 class BreakLocation {
69 public: 71 public:
70 static BreakLocation FromFrame(Handle<DebugInfo> debug_info, 72 static BreakLocation FromFrame(Handle<DebugInfo> debug_info,
71 JavaScriptFrame* frame); 73 JavaScriptFrame* frame);
72 74
73 static void AllAtCurrentStatement(Handle<DebugInfo> debug_info, 75 static void AllAtCurrentStatement(Handle<DebugInfo> debug_info,
74 JavaScriptFrame* frame, 76 JavaScriptFrame* frame,
75 List<BreakLocation>* result_out); 77 List<BreakLocation>* result_out);
76 78
77 inline bool IsReturn() const { return type_ == DEBUG_BREAK_SLOT_AT_RETURN; } 79 inline bool IsReturn() const { return type_ == DEBUG_BREAK_SLOT_AT_RETURN; }
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after
269 void OnThrow(Handle<Object> exception); 271 void OnThrow(Handle<Object> exception);
270 void OnPromiseReject(Handle<Object> promise, Handle<Object> value); 272 void OnPromiseReject(Handle<Object> promise, Handle<Object> value);
271 void OnCompileError(Handle<Script> script); 273 void OnCompileError(Handle<Script> script);
272 void OnAfterCompile(Handle<Script> script); 274 void OnAfterCompile(Handle<Script> script);
273 void OnAsyncTaskEvent(debug::PromiseDebugActionType type, int id, 275 void OnAsyncTaskEvent(debug::PromiseDebugActionType type, int id,
274 int parent_id); 276 int parent_id);
275 277
276 MUST_USE_RESULT MaybeHandle<Object> Call(Handle<Object> fun, 278 MUST_USE_RESULT MaybeHandle<Object> Call(Handle<Object> fun,
277 Handle<Object> data); 279 Handle<Object> data);
278 Handle<Context> GetDebugContext(); 280 Handle<Context> GetDebugContext();
279 void HandleDebugBreak(); 281 void HandleDebugBreak(IgnoreBreakMode ignore_break_mode);
280 282
281 // Internal logic 283 // Internal logic
282 bool Load(); 284 bool Load();
283 void Break(JavaScriptFrame* frame); 285 void Break(JavaScriptFrame* frame);
284 286
285 // Scripts handling. 287 // Scripts handling.
286 Handle<FixedArray> GetLoadedScripts(); 288 Handle<FixedArray> GetLoadedScripts();
287 289
288 // Break point handling. 290 // Break point handling.
289 bool SetBreakPoint(Handle<JSFunction> function, 291 bool SetBreakPoint(Handle<JSFunction> function,
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
483 // Clear code from instrumentation. 485 // Clear code from instrumentation.
484 void ClearBreakPoints(Handle<DebugInfo> debug_info); 486 void ClearBreakPoints(Handle<DebugInfo> debug_info);
485 // Clear all code from instrumentation. 487 // Clear all code from instrumentation.
486 void ClearAllBreakPoints(); 488 void ClearAllBreakPoints();
487 // Instrument a function with one-shots. 489 // Instrument a function with one-shots.
488 void FloodWithOneShot(Handle<SharedFunctionInfo> function); 490 void FloodWithOneShot(Handle<SharedFunctionInfo> function);
489 // Clear all one-shot instrumentations, but restore break points. 491 // Clear all one-shot instrumentations, but restore break points.
490 void ClearOneShot(); 492 void ClearOneShot();
491 493
492 bool IsFrameBlackboxed(JavaScriptFrame* frame); 494 bool IsFrameBlackboxed(JavaScriptFrame* frame);
495 bool IsTopFrameBlackboxed();
493 496
494 void ActivateStepOut(StackFrame* frame); 497 void ActivateStepOut(StackFrame* frame);
495 void RemoveDebugInfoAndClearFromShared(Handle<DebugInfo> debug_info); 498 void RemoveDebugInfoAndClearFromShared(Handle<DebugInfo> debug_info);
496 MaybeHandle<FixedArray> CheckBreakPoints(Handle<DebugInfo> debug_info, 499 MaybeHandle<FixedArray> CheckBreakPoints(Handle<DebugInfo> debug_info,
497 BreakLocation* location, 500 BreakLocation* location,
498 bool* has_break_points = nullptr); 501 bool* has_break_points = nullptr);
499 bool IsMutedAtCurrentLocation(JavaScriptFrame* frame); 502 bool IsMutedAtCurrentLocation(JavaScriptFrame* frame);
500 bool CheckBreakPoint(Handle<Object> break_point_object); 503 bool CheckBreakPoint(Handle<Object> break_point_object);
501 MaybeHandle<Object> CallFunction(const char* name, int argc, 504 MaybeHandle<Object> CallFunction(const char* name, int argc,
502 Handle<Object> args[]); 505 Handle<Object> args[]);
(...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after
794 Handle<Code> code); 797 Handle<Code> code);
795 static bool DebugBreakSlotIsPatched(Address pc); 798 static bool DebugBreakSlotIsPatched(Address pc);
796 static void ClearDebugBreakSlot(Isolate* isolate, Address pc); 799 static void ClearDebugBreakSlot(Isolate* isolate, Address pc);
797 }; 800 };
798 801
799 802
800 } // namespace internal 803 } // namespace internal
801 } // namespace v8 804 } // namespace v8
802 805
803 #endif // V8_DEBUG_DEBUG_H_ 806 #endif // V8_DEBUG_DEBUG_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698