1 //===-- CommandObjectBreakpointCommand.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_CommandObjectBreakpointCommand_h_ 11 #define liblldb_CommandObjectBreakpointCommand_h_ 12 13 // C Includes 14 // C++ Includes 15 16 17 // Other libraries and framework includes 18 // Project includes 19 20 #include "lldb/lldb-types.h" 21 #include "lldb/Interpreter/Options.h" 22 #include "lldb/Core/InputReader.h" 23 #include "lldb/Interpreter/CommandObject.h" 24 #include "lldb/Interpreter/CommandReturnObject.h" 25 #include "lldb/Interpreter/CommandObjectMultiword.h" 26 27 28 namespace lldb_private { 29 30 //------------------------------------------------------------------------- 31 // CommandObjectMultiwordBreakpoint 32 //------------------------------------------------------------------------- 33 34 class CommandObjectBreakpointCommand : public CommandObjectMultiword 35 { 36 public: 37 CommandObjectBreakpointCommand (CommandInterpreter &interpreter); 38 39 virtual 40 ~CommandObjectBreakpointCommand (); 41 42 43 static bool 44 BreakpointOptionsCallbackFunction (void *baton, 45 StoppointCallbackContext *context, 46 lldb::user_id_t break_id, 47 lldb::user_id_t break_loc_id); 48 }; 49 50 //------------------------------------------------------------------------- 51 // CommandObjectBreakpointCommandAdd 52 //------------------------------------------------------------------------- 53 54 55 class CommandObjectBreakpointCommandAdd : public CommandObject 56 { 57 public: 58 59 CommandObjectBreakpointCommandAdd (); 60 61 virtual 62 ~CommandObjectBreakpointCommandAdd (); 63 64 virtual bool 65 Execute (CommandInterpreter &interpreter, 66 Args& command, 67 CommandReturnObject &result); 68 69 virtual Options * 70 GetOptions (); 71 72 void 73 CollectDataForBreakpointCommandCallback (CommandInterpreter &interpreter, 74 BreakpointOptions *bp_options, 75 CommandReturnObject &result); 76 77 static size_t 78 GenerateBreakpointCommandCallback (void *baton, 79 InputReader &reader, 80 lldb::InputReaderAction notification, 81 const char *bytes, 82 size_t bytes_len); 83 84 static bool 85 BreakpointOptionsCallbackFunction (void *baton, 86 StoppointCallbackContext *context, 87 lldb::user_id_t break_id, 88 lldb::user_id_t break_loc_id); 89 90 91 class CommandOptions : public Options 92 { 93 public: 94 95 CommandOptions (); 96 97 virtual 98 ~CommandOptions (); 99 100 virtual Error 101 SetOptionValue (int option_idx, const char *option_arg); 102 103 void 104 ResetOptionValues (); 105 106 const lldb::OptionDefinition* 107 GetDefinitions (); 108 109 // Options table: Required for subclasses of Options. 110 111 static lldb::OptionDefinition g_option_table[]; 112 113 // Instance variables to hold the values for command options. 114 115 bool m_use_commands; 116 bool m_use_script_language; 117 lldb::ScriptLanguage m_script_language; 118 }; 119 120 private: 121 CommandOptions m_options; 122 }; 123 124 //------------------------------------------------------------------------- 125 // CommandObjectBreakpointCommandRemove 126 //------------------------------------------------------------------------- 127 128 class CommandObjectBreakpointCommandRemove : public CommandObject 129 { 130 public: 131 CommandObjectBreakpointCommandRemove (); 132 133 virtual 134 ~CommandObjectBreakpointCommandRemove (); 135 136 virtual bool 137 Execute (CommandInterpreter &interpreter, 138 Args& command, 139 CommandReturnObject &result); 140 141 private: 142 }; 143 144 //------------------------------------------------------------------------- 145 // CommandObjectBreakpointCommandList 146 //------------------------------------------------------------------------- 147 148 class CommandObjectBreakpointCommandList : public CommandObject 149 { 150 public: 151 CommandObjectBreakpointCommandList (); 152 153 virtual 154 ~CommandObjectBreakpointCommandList (); 155 156 virtual bool 157 Execute (CommandInterpreter &interpreter, 158 Args& command, 159 CommandReturnObject &result); 160 161 private: 162 }; 163 164 165 } // namespace lldb_private 166 167 #endif // liblldb_CommandObjectBreakpointCommand_h_ 168