1 //===-- CommandObjectBreakpoint.h -------------------------------*- C++ -*-===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 #ifndef liblldb_CommandObjectBreakpoint_h_ 11 #define liblldb_CommandObjectBreakpoint_h_ 12 13 14 #include <utility> 15 #include <vector> 16 17 #include "lldb/lldb-private.h" 18 #include "lldb/Breakpoint/BreakpointName.h" 19 #include "lldb/Core/Address.h" 20 #include "lldb/Core/STLUtils.h" 21 #include "lldb/Interpreter/CommandObjectMultiword.h" 22 #include "lldb/Interpreter/Options.h" 23 24 25 namespace lldb_private { 26 27 //------------------------------------------------------------------------- 28 // CommandObjectMultiwordBreakpoint 29 //------------------------------------------------------------------------- 30 31 class CommandObjectMultiwordBreakpoint : public CommandObjectMultiword { 32 public: 33 CommandObjectMultiwordBreakpoint(CommandInterpreter &interpreter); 34 35 ~CommandObjectMultiwordBreakpoint() override; 36 VerifyBreakpointOrLocationIDs(Args & args,Target * target,CommandReturnObject & result,BreakpointIDList * valid_ids,BreakpointName::Permissions::PermissionKinds purpose)37 static void VerifyBreakpointOrLocationIDs(Args &args, Target *target, 38 CommandReturnObject &result, 39 BreakpointIDList *valid_ids, 40 BreakpointName::Permissions 41 ::PermissionKinds purpose) { 42 VerifyIDs(args, target, true, result, valid_ids, purpose); 43 } 44 VerifyBreakpointIDs(Args & args,Target * target,CommandReturnObject & result,BreakpointIDList * valid_ids,BreakpointName::Permissions::PermissionKinds purpose)45 static void VerifyBreakpointIDs(Args &args, Target *target, 46 CommandReturnObject &result, 47 BreakpointIDList *valid_ids, 48 BreakpointName::Permissions::PermissionKinds 49 purpose) { 50 VerifyIDs(args, target, false, result, valid_ids, purpose); 51 } 52 53 private: 54 static void VerifyIDs(Args &args, Target *target, bool allow_locations, 55 CommandReturnObject &result, 56 BreakpointIDList *valid_ids, 57 BreakpointName::Permissions::PermissionKinds 58 purpose); 59 }; 60 61 } // namespace lldb_private 62 63 #endif // liblldb_CommandObjectBreakpoint_h_ 64