CommandObjectBreakpoint.h revision 4722b10307668368bf0f12fa6b8691e4f4cb5488
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// C Includes 14// C++ Includes 15 16#include <utility> 17#include <vector> 18 19// Other libraries and framework includes 20// Project includes 21#include "lldb/Core/Address.h" 22#include "lldb/Interpreter/CommandObjectMultiword.h" 23#include "lldb/Interpreter/Options.h" 24#include "lldb/Core/STLUtils.h" 25 26namespace lldb_private { 27 28//------------------------------------------------------------------------- 29// CommandObjectMultiwordBreakpoint 30//------------------------------------------------------------------------- 31 32class CommandObjectMultiwordBreakpoint : public CommandObjectMultiword 33{ 34public: 35 CommandObjectMultiwordBreakpoint (CommandInterpreter &interpreter); 36 37 virtual 38 ~CommandObjectMultiwordBreakpoint (); 39 40 static void 41 VerifyBreakpointIDs (Args &args, Target *target, CommandReturnObject &result, BreakpointIDList *valid_ids); 42 43}; 44 45//------------------------------------------------------------------------- 46// CommandObjectdBreakpointSet 47//------------------------------------------------------------------------- 48 49 50class CommandObjectBreakpointSet : public CommandObject 51{ 52public: 53 54 typedef enum BreakpointSetType 55 { 56 eSetTypeInvalid, 57 eSetTypeFileAndLine, 58 eSetTypeAddress, 59 eSetTypeFunctionName, 60 eSetTypeFunctionRegexp, 61 eSetTypeSourceRegexp, 62 eSetTypeException 63 } BreakpointSetType; 64 65 CommandObjectBreakpointSet (CommandInterpreter &interpreter); 66 67 virtual 68 ~CommandObjectBreakpointSet (); 69 70 virtual bool 71 Execute (Args& command, 72 CommandReturnObject &result); 73 74 virtual Options * 75 GetOptions (); 76 77 class CommandOptions : public Options 78 { 79 public: 80 81 CommandOptions (CommandInterpreter &interpreter); 82 83 virtual 84 ~CommandOptions (); 85 86 virtual Error 87 SetOptionValue (uint32_t option_idx, const char *option_arg); 88 89 void 90 OptionParsingStarting (); 91 92 const OptionDefinition* 93 GetDefinitions (); 94 95 // Options table: Required for subclasses of Options. 96 97 static OptionDefinition g_option_table[]; 98 99 // Instance variables to hold the values for command options. 100 101 FileSpecList m_filenames; 102 uint32_t m_line_num; 103 uint32_t m_column; 104 bool m_check_inlines; 105 std::vector<std::string> m_func_names; 106 uint32_t m_func_name_type_mask; 107 std::string m_func_regexp; 108 std::string m_source_text_regexp; 109 FileSpecList m_modules; 110 lldb::addr_t m_load_addr; 111 uint32_t m_ignore_count; 112 lldb::tid_t m_thread_id; 113 uint32_t m_thread_index; 114 std::string m_thread_name; 115 std::string m_queue_name; 116 bool m_catch_bp; 117 bool m_throw_bp; 118 lldb::LanguageType m_language; 119 120 }; 121 122private: 123 bool 124 GetDefaultFile (Target *target, FileSpec &file, CommandReturnObject &result); 125 126 CommandOptions m_options; 127}; 128 129//------------------------------------------------------------------------- 130// CommandObjectMultiwordBreakpointModify 131//------------------------------------------------------------------------- 132 133 134class CommandObjectBreakpointModify : public CommandObject 135{ 136public: 137 138 CommandObjectBreakpointModify (CommandInterpreter &interpreter); 139 140 virtual 141 ~CommandObjectBreakpointModify (); 142 143 virtual bool 144 Execute (Args& command, 145 CommandReturnObject &result); 146 147 virtual Options * 148 GetOptions (); 149 150 class CommandOptions : public Options 151 { 152 public: 153 154 CommandOptions (CommandInterpreter &interpreter); 155 156 virtual 157 ~CommandOptions (); 158 159 virtual Error 160 SetOptionValue (uint32_t option_idx, const char *option_arg); 161 162 void 163 OptionParsingStarting (); 164 165 const OptionDefinition* 166 GetDefinitions (); 167 168 // Options table: Required for subclasses of Options. 169 170 static OptionDefinition g_option_table[]; 171 172 // Instance variables to hold the values for command options. 173 174 uint32_t m_ignore_count; 175 lldb::tid_t m_thread_id; 176 bool m_thread_id_passed; 177 uint32_t m_thread_index; 178 bool m_thread_index_passed; 179 std::string m_thread_name; 180 std::string m_queue_name; 181 std::string m_condition; 182 bool m_enable_passed; 183 bool m_enable_value; 184 bool m_name_passed; 185 bool m_queue_passed; 186 bool m_condition_passed; 187 188 }; 189 190private: 191 CommandOptions m_options; 192}; 193 194//------------------------------------------------------------------------- 195// CommandObjectBreakpointEnable 196//------------------------------------------------------------------------- 197 198class CommandObjectBreakpointEnable : public CommandObject 199{ 200public: 201 CommandObjectBreakpointEnable (CommandInterpreter &interpreter); 202 203 virtual 204 ~CommandObjectBreakpointEnable (); 205 206 virtual bool 207 Execute (Args& command, 208 CommandReturnObject &result); 209 210private: 211}; 212 213//------------------------------------------------------------------------- 214// CommandObjectBreakpointDisable 215//------------------------------------------------------------------------- 216 217class CommandObjectBreakpointDisable : public CommandObject 218{ 219public: 220 CommandObjectBreakpointDisable (CommandInterpreter &interpreter); 221 222 virtual 223 ~CommandObjectBreakpointDisable (); 224 225 virtual bool 226 Execute (Args& command, 227 CommandReturnObject &result); 228 229private: 230}; 231 232//------------------------------------------------------------------------- 233// CommandObjectBreakpointList 234//------------------------------------------------------------------------- 235 236class CommandObjectBreakpointList : public CommandObject 237{ 238public: 239 CommandObjectBreakpointList (CommandInterpreter &interpreter); 240 241 virtual 242 ~CommandObjectBreakpointList (); 243 244 virtual bool 245 Execute (Args& command, 246 CommandReturnObject &result); 247 248 virtual Options * 249 GetOptions (); 250 251 class CommandOptions : public Options 252 { 253 public: 254 255 CommandOptions (CommandInterpreter &interpreter); 256 257 virtual 258 ~CommandOptions (); 259 260 virtual Error 261 SetOptionValue (uint32_t option_idx, const char *option_arg); 262 263 void 264 OptionParsingStarting (); 265 266 const OptionDefinition * 267 GetDefinitions (); 268 269 // Options table: Required for subclasses of Options. 270 271 static OptionDefinition g_option_table[]; 272 273 // Instance variables to hold the values for command options. 274 275 lldb::DescriptionLevel m_level; 276 277 bool m_internal; 278 }; 279 280private: 281 CommandOptions m_options; 282}; 283 284//------------------------------------------------------------------------- 285// CommandObjectBreakpointClear 286//------------------------------------------------------------------------- 287 288 289class CommandObjectBreakpointClear : public CommandObject 290{ 291public: 292 293 typedef enum BreakpointClearType 294 { 295 eClearTypeInvalid, 296 eClearTypeFileAndLine 297 } BreakpointClearType; 298 299 CommandObjectBreakpointClear (CommandInterpreter &interpreter); 300 301 virtual 302 ~CommandObjectBreakpointClear (); 303 304 virtual bool 305 Execute (Args& command, 306 CommandReturnObject &result); 307 308 virtual Options * 309 GetOptions (); 310 311 class CommandOptions : public Options 312 { 313 public: 314 315 CommandOptions (CommandInterpreter &interpreter); 316 317 virtual 318 ~CommandOptions (); 319 320 virtual Error 321 SetOptionValue (uint32_t option_idx, const char *option_arg); 322 323 void 324 OptionParsingStarting (); 325 326 const OptionDefinition* 327 GetDefinitions (); 328 329 // Options table: Required for subclasses of Options. 330 331 static OptionDefinition g_option_table[]; 332 333 // Instance variables to hold the values for command options. 334 335 std::string m_filename; 336 uint32_t m_line_num; 337 338 }; 339 340private: 341 CommandOptions m_options; 342}; 343 344//------------------------------------------------------------------------- 345// CommandObjectBreakpointDelete 346//------------------------------------------------------------------------- 347 348class CommandObjectBreakpointDelete : public CommandObject 349{ 350public: 351 CommandObjectBreakpointDelete (CommandInterpreter &interpreter); 352 353 virtual 354 ~CommandObjectBreakpointDelete (); 355 356 virtual bool 357 Execute (Args& command, 358 CommandReturnObject &result); 359 360private: 361}; 362 363} // namespace lldb_private 364 365#endif // liblldb_CommandObjectBreakpoint_h_ 366