blob: 5e1026a6b7eafd3d36f1c26ab64e6462ae3c9616 [file] [log] [blame]
Chris Lattner30fdc8d2010-06-08 16:52:24 +00001//===-- 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// C Includes
14// C++ Includes
15
16#include <utility>
17#include <vector>
18
19// Other libraries and framework includes
20// Project includes
Jim Inghamb842f2e2017-09-14 20:22:49 +000021#include "lldb/lldb-private.h"
22#include "lldb/Breakpoint/BreakpointName.h"
Chris Lattner30fdc8d2010-06-08 16:52:24 +000023#include "lldb/Core/Address.h"
Kate Stoneb9c1b512016-09-06 20:57:50 +000024#include "lldb/Core/STLUtils.h"
Chris Lattner30fdc8d2010-06-08 16:52:24 +000025#include "lldb/Interpreter/CommandObjectMultiword.h"
Jim Ingham40af72e2010-06-15 19:49:27 +000026#include "lldb/Interpreter/Options.h"
Chris Lattner30fdc8d2010-06-08 16:52:24 +000027
Jim Inghamb842f2e2017-09-14 20:22:49 +000028
Chris Lattner30fdc8d2010-06-08 16:52:24 +000029namespace lldb_private {
30
31//-------------------------------------------------------------------------
32// CommandObjectMultiwordBreakpoint
33//-------------------------------------------------------------------------
34
Kate Stoneb9c1b512016-09-06 20:57:50 +000035class CommandObjectMultiwordBreakpoint : public CommandObjectMultiword {
Chris Lattner30fdc8d2010-06-08 16:52:24 +000036public:
Kate Stoneb9c1b512016-09-06 20:57:50 +000037 CommandObjectMultiwordBreakpoint(CommandInterpreter &interpreter);
Chris Lattner30fdc8d2010-06-08 16:52:24 +000038
Kate Stoneb9c1b512016-09-06 20:57:50 +000039 ~CommandObjectMultiwordBreakpoint() override;
Chris Lattner30fdc8d2010-06-08 16:52:24 +000040
Kate Stoneb9c1b512016-09-06 20:57:50 +000041 static void VerifyBreakpointOrLocationIDs(Args &args, Target *target,
42 CommandReturnObject &result,
Jim Inghamb842f2e2017-09-14 20:22:49 +000043 BreakpointIDList *valid_ids,
44 BreakpointName::Permissions
45 ::PermissionKinds purpose) {
46 VerifyIDs(args, target, true, result, valid_ids, purpose);
Kate Stoneb9c1b512016-09-06 20:57:50 +000047 }
Chris Lattner30fdc8d2010-06-08 16:52:24 +000048
Kate Stoneb9c1b512016-09-06 20:57:50 +000049 static void VerifyBreakpointIDs(Args &args, Target *target,
50 CommandReturnObject &result,
Jim Inghamb842f2e2017-09-14 20:22:49 +000051 BreakpointIDList *valid_ids,
52 BreakpointName::Permissions::PermissionKinds
53 purpose) {
54 VerifyIDs(args, target, false, result, valid_ids, purpose);
Kate Stoneb9c1b512016-09-06 20:57:50 +000055 }
Jim Ingham5e09c8c2014-12-16 23:40:14 +000056
57private:
Kate Stoneb9c1b512016-09-06 20:57:50 +000058 static void VerifyIDs(Args &args, Target *target, bool allow_locations,
59 CommandReturnObject &result,
Jim Inghamb842f2e2017-09-14 20:22:49 +000060 BreakpointIDList *valid_ids,
61 BreakpointName::Permissions::PermissionKinds
62 purpose);
Chris Lattner30fdc8d2010-06-08 16:52:24 +000063};
64
Chris Lattner30fdc8d2010-06-08 16:52:24 +000065} // namespace lldb_private
66
Pavel Labath1fb7e202015-09-02 09:33:09 +000067#endif // liblldb_CommandObjectBreakpoint_h_