[cleanup] Fix DebugBreakType enum.

The order of the enum values is important for the BreakLocation
predicates. This wasn't an issue so far, since the DEBUG_BREAK_AT_ENTRY
case is anyways treated separately, but for the future I've added a
comment and fixed the order.

Drive-by-fix: Remove the useless `inline` markers on the predicates.

Bug: chromium:1162229, chromium:700516
Change-Id: I05653ac9b5ea225e30c5c2beeff809b8848c2ec7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3026712
Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75736}
This commit is contained in:
Benedikt Meurer 2021-07-14 14:21:31 +02:00 committed by V8 LUCI CQ
parent 4fc3d0980b
commit 5a4f8a08e8

View File

@ -42,14 +42,16 @@ enum StepAction : int8_t {
// Type of exception break. NOTE: These values are in macros.py as well. // Type of exception break. NOTE: These values are in macros.py as well.
enum ExceptionBreakType { BreakException = 0, BreakUncaughtException = 1 }; enum ExceptionBreakType { BreakException = 0, BreakUncaughtException = 1 };
// Type of debug break. NOTE: The order matters for the predicates
// below inside BreakLocation, so be careful when adding / removing.
enum DebugBreakType { enum DebugBreakType {
NOT_DEBUG_BREAK, NOT_DEBUG_BREAK,
DEBUGGER_STATEMENT, DEBUGGER_STATEMENT,
DEBUG_BREAK_AT_ENTRY,
DEBUG_BREAK_SLOT, DEBUG_BREAK_SLOT,
DEBUG_BREAK_SLOT_AT_CALL, DEBUG_BREAK_SLOT_AT_CALL,
DEBUG_BREAK_SLOT_AT_RETURN, DEBUG_BREAK_SLOT_AT_RETURN,
DEBUG_BREAK_SLOT_AT_SUSPEND, DEBUG_BREAK_SLOT_AT_SUSPEND,
DEBUG_BREAK_AT_ENTRY,
}; };
enum IgnoreBreakMode { enum IgnoreBreakMode {
@ -67,25 +69,18 @@ class BreakLocation {
JavaScriptFrame* frame, JavaScriptFrame* frame,
std::vector<BreakLocation>* result_out); std::vector<BreakLocation>* result_out);
inline bool IsSuspend() const { return type_ == DEBUG_BREAK_SLOT_AT_SUSPEND; } bool IsSuspend() const { return type_ == DEBUG_BREAK_SLOT_AT_SUSPEND; }
inline bool IsReturn() const { return type_ == DEBUG_BREAK_SLOT_AT_RETURN; } bool IsReturn() const { return type_ == DEBUG_BREAK_SLOT_AT_RETURN; }
inline bool IsReturnOrSuspend() const { bool IsReturnOrSuspend() const { return type_ >= DEBUG_BREAK_SLOT_AT_RETURN; }
return type_ >= DEBUG_BREAK_SLOT_AT_RETURN; bool IsCall() const { return type_ == DEBUG_BREAK_SLOT_AT_CALL; }
} bool IsDebugBreakSlot() const { return type_ >= DEBUG_BREAK_SLOT; }
inline bool IsCall() const { return type_ == DEBUG_BREAK_SLOT_AT_CALL; } bool IsDebuggerStatement() const { return type_ == DEBUGGER_STATEMENT; }
inline bool IsDebugBreakSlot() const { return type_ >= DEBUG_BREAK_SLOT; } bool IsDebugBreakAtEntry() const { return type_ == DEBUG_BREAK_AT_ENTRY; }
inline bool IsDebuggerStatement() const {
return type_ == DEBUGGER_STATEMENT;
}
inline bool IsDebugBreakAtEntry() const {
bool result = type_ == DEBUG_BREAK_AT_ENTRY;
return result;
}
bool HasBreakPoint(Isolate* isolate, Handle<DebugInfo> debug_info) const; bool HasBreakPoint(Isolate* isolate, Handle<DebugInfo> debug_info) const;
inline int generator_suspend_id() { return generator_suspend_id_; } int generator_suspend_id() { return generator_suspend_id_; }
inline int position() const { return position_; } int position() const { return position_; }
debug::BreakLocationType type() const; debug::BreakLocationType type() const;