CommandObjectBreakpoint.h revision 3c7b5b9f83cae58ca366db2bba37dc09485f7dcc
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// CommandObjectMultiwordBreakpointSet 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 } BreakpointSetType; 62 63 CommandObjectBreakpointSet (); 64 65 virtual 66 ~CommandObjectBreakpointSet (); 67 68 virtual bool 69 Execute (Args& command, 70 CommandContext *context, 71 CommandInterpreter *interpreter, 72 CommandReturnObject &result); 73 74 virtual Options * 75 GetOptions (); 76 77 class CommandOptions : public Options 78 { 79 public: 80 81 CommandOptions (); 82 83 virtual 84 ~CommandOptions (); 85 86 virtual Error 87 SetOptionValue (int option_idx, const char *option_arg); 88 89 void 90 ResetOptionValues (); 91 92 const lldb::OptionDefinition* 93 GetDefinitions (); 94 95 // Options table: Required for subclasses of Options. 96 97 static lldb::OptionDefinition g_option_table[]; 98 99 // Instance variables to hold the values for command options. 100 101 std::string m_filename; 102 unsigned int m_line_num; 103 unsigned int m_column; 104 bool m_ignore_inlines; 105 std::string m_func_name; 106 std::string m_func_regexp; 107 lldb::addr_t m_load_addr; 108 STLStringArray m_modules; 109 int32_t m_ignore_count; 110 lldb::tid_t m_thread_id; 111 uint32_t m_thread_index; 112 std::string m_thread_name; 113 std::string m_queue_name; 114 115 }; 116 117private: 118 CommandOptions m_options; 119}; 120 121//------------------------------------------------------------------------- 122// CommandObjectMultiwordBreakpointConfigure 123//------------------------------------------------------------------------- 124 125 126class CommandObjectBreakpointConfigure : public CommandObject 127{ 128public: 129 130 CommandObjectBreakpointConfigure (); 131 132 virtual 133 ~CommandObjectBreakpointConfigure (); 134 135 virtual bool 136 Execute (Args& command, 137 CommandContext *context, 138 CommandInterpreter *interpreter, 139 CommandReturnObject &result); 140 141 virtual Options * 142 GetOptions (); 143 144 class CommandOptions : public Options 145 { 146 public: 147 148 CommandOptions (); 149 150 virtual 151 ~CommandOptions (); 152 153 virtual Error 154 SetOptionValue (int option_idx, const char *option_arg); 155 156 void 157 ResetOptionValues (); 158 159 const lldb::OptionDefinition* 160 GetDefinitions (); 161 162 // Options table: Required for subclasses of Options. 163 164 static lldb::OptionDefinition g_option_table[]; 165 166 // Instance variables to hold the values for command options. 167 168 int32_t m_ignore_count; 169 lldb::tid_t m_thread_id; 170 uint32_t m_thread_index; 171 std::string m_thread_name; 172 std::string m_queue_name; 173 174 }; 175 176private: 177 CommandOptions m_options; 178}; 179 180//------------------------------------------------------------------------- 181// CommandObjectBreakpointEnable 182//------------------------------------------------------------------------- 183 184class CommandObjectBreakpointEnable : public CommandObject 185{ 186public: 187 CommandObjectBreakpointEnable (); 188 189 virtual 190 ~CommandObjectBreakpointEnable (); 191 192 virtual bool 193 Execute (Args& command, 194 CommandContext *context, 195 CommandInterpreter *interpreter, 196 CommandReturnObject &result); 197 198private: 199}; 200 201//------------------------------------------------------------------------- 202// CommandObjectBreakpointDisable 203//------------------------------------------------------------------------- 204 205class CommandObjectBreakpointDisable : public CommandObject 206{ 207public: 208 CommandObjectBreakpointDisable (); 209 210 virtual 211 ~CommandObjectBreakpointDisable (); 212 213 virtual bool 214 Execute (Args& command, 215 CommandContext *context, 216 CommandInterpreter *interpreter, 217 CommandReturnObject &result); 218 219private: 220}; 221 222//------------------------------------------------------------------------- 223// CommandObjectBreakpointList 224//------------------------------------------------------------------------- 225 226class CommandObjectBreakpointList : public CommandObject 227{ 228public: 229 CommandObjectBreakpointList (); 230 231 virtual 232 ~CommandObjectBreakpointList (); 233 234 virtual bool 235 Execute (Args& command, 236 CommandContext *context, 237 CommandInterpreter *interpreter, 238 CommandReturnObject &result); 239 240 virtual Options * 241 GetOptions (); 242 243 class CommandOptions : public Options 244 { 245 public: 246 247 CommandOptions (); 248 249 virtual 250 ~CommandOptions (); 251 252 virtual Error 253 SetOptionValue (int option_idx, const char *option_arg); 254 255 void 256 ResetOptionValues (); 257 258 const lldb::OptionDefinition * 259 GetDefinitions (); 260 261 // Options table: Required for subclasses of Options. 262 263 static lldb::OptionDefinition g_option_table[]; 264 265 // Instance variables to hold the values for command options. 266 267 lldb::DescriptionLevel m_level; 268 269 bool m_internal; 270 }; 271 272private: 273 CommandOptions m_options; 274}; 275 276//------------------------------------------------------------------------- 277// CommandObjectBreakpointDelete 278//------------------------------------------------------------------------- 279 280class CommandObjectBreakpointDelete : public CommandObject 281{ 282public: 283 CommandObjectBreakpointDelete (); 284 285 virtual 286 ~CommandObjectBreakpointDelete (); 287 288 virtual bool 289 Execute (Args& command, 290 CommandContext *context, 291 CommandInterpreter *interpreter, 292 CommandReturnObject &result); 293 294private: 295}; 296 297} // namespace lldb_private 298 299#endif // liblldb_CommandObjectBreakpoint_h_ 300