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 22 namespace lldb_private { 23 24 //------------------------------------------------------------------------- 25 // CommandObjectMultiwordWatchpoint 26 //------------------------------------------------------------------------- 27 28 class CommandObjectMultiwordWatchpoint : public CommandObjectMultiword 29 { 30 public: 31 CommandObjectMultiwordWatchpoint (CommandInterpreter &interpreter); 32 33 virtual 34 ~CommandObjectMultiwordWatchpoint (); 35 }; 36 37 //------------------------------------------------------------------------- 38 // CommandObjectWatchpointList 39 //------------------------------------------------------------------------- 40 41 class CommandObjectWatchpointList : public CommandObject 42 { 43 public: 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 83 private: 84 CommandOptions m_options; 85 }; 86 87 //------------------------------------------------------------------------- 88 // CommandObjectWatchpointEnable 89 //------------------------------------------------------------------------- 90 91 class CommandObjectWatchpointEnable : public CommandObject 92 { 93 public: 94 CommandObjectWatchpointEnable (CommandInterpreter &interpreter); 95 96 virtual 97 ~CommandObjectWatchpointEnable (); 98 99 virtual bool 100 Execute (Args& command, 101 CommandReturnObject &result); 102 103 private: 104 }; 105 106 //------------------------------------------------------------------------- 107 // CommandObjectWatchpointDisable 108 //------------------------------------------------------------------------- 109 110 class CommandObjectWatchpointDisable : public CommandObject 111 { 112 public: 113 CommandObjectWatchpointDisable (CommandInterpreter &interpreter); 114 115 virtual 116 ~CommandObjectWatchpointDisable (); 117 118 virtual bool 119 Execute (Args& command, 120 CommandReturnObject &result); 121 122 private: 123 }; 124 125 //------------------------------------------------------------------------- 126 // CommandObjectWatchpointDelete 127 //------------------------------------------------------------------------- 128 129 class CommandObjectWatchpointDelete : public CommandObject 130 { 131 public: 132 CommandObjectWatchpointDelete (CommandInterpreter &interpreter); 133 134 virtual 135 ~CommandObjectWatchpointDelete (); 136 137 virtual bool 138 Execute (Args& command, 139 CommandReturnObject &result); 140 141 private: 142 }; 143 144 //------------------------------------------------------------------------- 145 // CommandObjectWatchpointIgnore 146 //------------------------------------------------------------------------- 147 148 class CommandObjectWatchpointIgnore : public CommandObject 149 { 150 public: 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 190 private: 191 CommandOptions m_options; 192 }; 193 194 //------------------------------------------------------------------------- 195 // CommandObjectWatchpointModify 196 //------------------------------------------------------------------------- 197 198 class CommandObjectWatchpointModify : public CommandObject 199 { 200 public: 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 242 private: 243 CommandOptions m_options; 244 }; 245 246 //------------------------------------------------------------------------- 247 // CommandObjectWatchpointSet 248 //------------------------------------------------------------------------- 249 250 class CommandObjectWatchpointSet : public CommandObject 251 { 252 public: 253 254 CommandObjectWatchpointSet (CommandInterpreter &interpreter); 255 256 virtual 257 ~CommandObjectWatchpointSet (); 258 259 virtual bool 260 Execute (Args& command, 261 CommandReturnObject &result); 262 263 virtual Options * 264 GetOptions (); 265 266 private: 267 OptionGroupOptions m_option_group; 268 OptionGroupWatchpoint m_option_watchpoint; 269 }; 270 271 } // namespace lldb_private 272 273 #endif // liblldb_CommandObjectWatchpoint_h_ 274