CommandObjectWatchpoint.h revision 42404d284b22750851b26ae9a4ab42101f673089
1//===-- CommandObjectWatchpoint.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_CommandObjectWatchpoint_h_
11#define liblldb_CommandObjectWatchpoint_h_
12
13// C Includes
14// C++ Includes
15
16// Other libraries and framework includes
17// Project includes
18#include "lldb/Interpreter/CommandObjectMultiword.h"
19#include "lldb/Interpreter/Options.h"
20#include "lldb/Interpreter/OptionGroupWatchpoint.h"
21
22namespace lldb_private {
23
24//-------------------------------------------------------------------------
25// CommandObjectMultiwordWatchpoint
26//-------------------------------------------------------------------------
27
28class CommandObjectMultiwordWatchpoint : public CommandObjectMultiword
29{
30public:
31    CommandObjectMultiwordWatchpoint (CommandInterpreter &interpreter);
32
33    virtual
34    ~CommandObjectMultiwordWatchpoint ();
35};
36
37//-------------------------------------------------------------------------
38// CommandObjectWatchpointList
39//-------------------------------------------------------------------------
40
41class CommandObjectWatchpointList : public CommandObject
42{
43public:
44    CommandObjectWatchpointList (CommandInterpreter &interpreter);
45
46    virtual
47    ~CommandObjectWatchpointList ();
48
49    virtual bool
50    Execute (Args& command,
51             CommandReturnObject &result);
52
53    virtual Options *
54    GetOptions ();
55
56    class CommandOptions : public Options
57    {
58    public:
59
60        CommandOptions (CommandInterpreter &interpreter);
61
62        virtual
63        ~CommandOptions ();
64
65        virtual Error
66        SetOptionValue (uint32_t option_idx, const char *option_arg);
67
68        void
69        OptionParsingStarting ();
70
71        const OptionDefinition *
72        GetDefinitions ();
73
74        // Options table: Required for subclasses of Options.
75
76        static OptionDefinition g_option_table[];
77
78        // Instance variables to hold the values for command options.
79
80        lldb::DescriptionLevel m_level;
81    };
82
83private:
84    CommandOptions m_options;
85};
86
87//-------------------------------------------------------------------------
88// CommandObjectWatchpointEnable
89//-------------------------------------------------------------------------
90
91class CommandObjectWatchpointEnable : public CommandObject
92{
93public:
94    CommandObjectWatchpointEnable (CommandInterpreter &interpreter);
95
96    virtual
97    ~CommandObjectWatchpointEnable ();
98
99    virtual bool
100    Execute (Args& command,
101             CommandReturnObject &result);
102
103private:
104};
105
106//-------------------------------------------------------------------------
107// CommandObjectWatchpointDisable
108//-------------------------------------------------------------------------
109
110class CommandObjectWatchpointDisable : public CommandObject
111{
112public:
113    CommandObjectWatchpointDisable (CommandInterpreter &interpreter);
114
115    virtual
116    ~CommandObjectWatchpointDisable ();
117
118    virtual bool
119    Execute (Args& command,
120             CommandReturnObject &result);
121
122private:
123};
124
125//-------------------------------------------------------------------------
126// CommandObjectWatchpointDelete
127//-------------------------------------------------------------------------
128
129class CommandObjectWatchpointDelete : public CommandObject
130{
131public:
132    CommandObjectWatchpointDelete (CommandInterpreter &interpreter);
133
134    virtual
135    ~CommandObjectWatchpointDelete ();
136
137    virtual bool
138    Execute (Args& command,
139             CommandReturnObject &result);
140
141private:
142};
143
144//-------------------------------------------------------------------------
145// CommandObjectWatchpointIgnore
146//-------------------------------------------------------------------------
147
148class CommandObjectWatchpointIgnore : public CommandObject
149{
150public:
151    CommandObjectWatchpointIgnore (CommandInterpreter &interpreter);
152
153    virtual
154    ~CommandObjectWatchpointIgnore ();
155
156    virtual bool
157    Execute (Args& command,
158             CommandReturnObject &result);
159
160    virtual Options *
161    GetOptions ();
162
163    class CommandOptions : public Options
164    {
165    public:
166
167        CommandOptions (CommandInterpreter &interpreter);
168
169        virtual
170        ~CommandOptions ();
171
172        virtual Error
173        SetOptionValue (uint32_t option_idx, const char *option_arg);
174
175        void
176        OptionParsingStarting ();
177
178        const OptionDefinition *
179        GetDefinitions ();
180
181        // Options table: Required for subclasses of Options.
182
183        static OptionDefinition g_option_table[];
184
185        // Instance variables to hold the values for command options.
186
187        uint32_t m_ignore_count;
188    };
189
190private:
191    CommandOptions m_options;
192};
193
194//-------------------------------------------------------------------------
195// CommandObjectWatchpointModify
196//-------------------------------------------------------------------------
197
198class CommandObjectWatchpointModify : public CommandObject
199{
200public:
201
202    CommandObjectWatchpointModify (CommandInterpreter &interpreter);
203
204    virtual
205    ~CommandObjectWatchpointModify ();
206
207    virtual bool
208    Execute (Args& command,
209             CommandReturnObject &result);
210
211    virtual Options *
212    GetOptions ();
213
214    class CommandOptions : public Options
215    {
216    public:
217
218        CommandOptions (CommandInterpreter &interpreter);
219
220        virtual
221        ~CommandOptions ();
222
223        virtual Error
224        SetOptionValue (uint32_t option_idx, const char *option_arg);
225
226        void
227        OptionParsingStarting ();
228
229        const OptionDefinition*
230        GetDefinitions ();
231
232        // Options table: Required for subclasses of Options.
233
234        static OptionDefinition g_option_table[];
235
236        // Instance variables to hold the values for command options.
237
238        std::string m_condition;
239        bool m_condition_passed;
240    };
241
242private:
243    CommandOptions m_options;
244};
245
246//-------------------------------------------------------------------------
247// CommandObjectWatchpointSet
248//-------------------------------------------------------------------------
249
250class CommandObjectWatchpointSet : public CommandObjectMultiword
251{
252public:
253
254    CommandObjectWatchpointSet (CommandInterpreter &interpreter);
255
256    virtual
257    ~CommandObjectWatchpointSet ();
258
259
260};
261
262class CommandObjectWatchpointSetVariable : public CommandObject
263{
264public:
265
266    CommandObjectWatchpointSetVariable (CommandInterpreter &interpreter);
267
268    virtual
269    ~CommandObjectWatchpointSetVariable ();
270
271    virtual bool
272    Execute (Args& command,
273             CommandReturnObject &result);
274
275    virtual Options *
276    GetOptions ();
277
278private:
279    OptionGroupOptions m_option_group;
280    OptionGroupWatchpoint m_option_watchpoint;
281};
282
283class CommandObjectWatchpointSetExpression : public CommandObject
284{
285public:
286
287    CommandObjectWatchpointSetExpression (CommandInterpreter &interpreter);
288
289    virtual
290    ~CommandObjectWatchpointSetExpression ();
291
292    virtual bool
293    Execute (Args& command,
294             CommandReturnObject &result)
295    { return false; }
296
297    virtual bool
298    WantsRawCommandString() { return true; }
299
300    // Overrides base class's behavior where WantsCompletion = !WantsRawCommandString.
301    virtual bool
302    WantsCompletion() { return true; }
303
304    virtual bool
305    ExecuteRawCommandString (const char *raw_command,
306                             CommandReturnObject &result);
307
308    virtual Options *
309    GetOptions ();
310
311private:
312    OptionGroupOptions m_option_group;
313    OptionGroupWatchpoint m_option_watchpoint;
314};
315
316} // namespace lldb_private
317
318#endif  // liblldb_CommandObjectWatchpoint_h_
319