1 //===-- CommandObjectBreakpoint.h -------------------------------*- C++ -*-===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #ifndef liblldb_CommandObjectBreakpoint_h_
10 #define liblldb_CommandObjectBreakpoint_h_
11 
12 #include <utility>
13 #include <vector>
14 
15 #include "lldb/Breakpoint/BreakpointName.h"
16 #include "lldb/Core/Address.h"
17 #include "lldb/Core/STLUtils.h"
18 #include "lldb/Interpreter/CommandObjectMultiword.h"
19 #include "lldb/Interpreter/Options.h"
20 #include "lldb/lldb-private.h"
21 
22 namespace lldb_private {
23 
24 // CommandObjectMultiwordBreakpoint
25 
26 class CommandObjectMultiwordBreakpoint : public CommandObjectMultiword {
27 public:
28   CommandObjectMultiwordBreakpoint(CommandInterpreter &interpreter);
29 
30   ~CommandObjectMultiwordBreakpoint() override;
31 
32   static void VerifyBreakpointOrLocationIDs(
33       Args &args, Target *target, CommandReturnObject &result,
34       BreakpointIDList *valid_ids,
35       BreakpointName::Permissions ::PermissionKinds purpose) {
36     VerifyIDs(args, target, true, result, valid_ids, purpose);
37   }
38 
39   static void
40   VerifyBreakpointIDs(Args &args, Target *target, CommandReturnObject &result,
41                       BreakpointIDList *valid_ids,
42                       BreakpointName::Permissions::PermissionKinds purpose) {
43     VerifyIDs(args, target, false, result, valid_ids, purpose);
44   }
45 
46 private:
47   static void VerifyIDs(Args &args, Target *target, bool allow_locations,
48                         CommandReturnObject &result,
49                         BreakpointIDList *valid_ids,
50                         BreakpointName::Permissions::PermissionKinds purpose);
51 };
52 
53 } // namespace lldb_private
54 
55 #endif // liblldb_CommandObjectBreakpoint_h_
56