blob: 64b8dbc67e98590a419af986c6e74990d05a1591 [file] [log] [blame]
// Copyright 2018 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef SRC_DEVELOPER_DEBUG_ZXDB_CLIENT_BREAKPOINT_ACTION_H_
#define SRC_DEVELOPER_DEBUG_ZXDB_CLIENT_BREAKPOINT_ACTION_H_
namespace zxdb {
// What to do when a breakpoint is hit.
//
// The ordering if this enum is in increasing order or precedence. The highest numbered value is
// used when there are conflicts (see BreakpointActionHighestPrecedence() below).
enum class BreakpointAction {
// The thread should be auto-continued as if the breakpoint was never hit.
kContinue = 0,
// The thread should be stopped but no notifications are issued. This is normally used when
// determining whether the breakpoint should stop is dependent on an asynchronous operation.
kSilentStop,
// Thread should stop and everything should be notified as normal.
kStop
};
// Returns the action that takes precedence. If two breakpoints are hit at the same time and they
// each report different actions, the one with the highest precedence is the action taken.
BreakpointAction BreakpointActionHighestPrecedence(BreakpointAction a, BreakpointAction b);
} // namespace zxdb
#endif // SRC_DEVELOPER_DEBUG_ZXDB_CLIENT_BREAKPOINT_ACTION_H_