//===-- CommandObjectBreakpoint.h -------------------------------*- C++ -*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// #ifndef liblldb_CommandObjectBreakpoint_h_ #define liblldb_CommandObjectBreakpoint_h_ // C Includes // C++ Includes #include #include // Other libraries and framework includes // Project includes #include "lldb/Core/Address.h" #include "lldb/Interpreter/CommandObjectMultiword.h" #include "lldb/Interpreter/Options.h" #include "lldb/Core/STLUtils.h" namespace lldb_private { //------------------------------------------------------------------------- // CommandObjectMultiwordBreakpoint //------------------------------------------------------------------------- class CommandObjectMultiwordBreakpoint : public CommandObjectMultiword { public: CommandObjectMultiwordBreakpoint (CommandInterpreter &interpreter); virtual ~CommandObjectMultiwordBreakpoint (); static void VerifyBreakpointIDs (Args &args, Target *target, CommandReturnObject &result, BreakpointIDList *valid_ids); }; //------------------------------------------------------------------------- // CommandObjectdBreakpointSet //------------------------------------------------------------------------- class CommandObjectBreakpointSet : public CommandObject { public: typedef enum BreakpointSetType { eSetTypeInvalid, eSetTypeFileAndLine, eSetTypeAddress, eSetTypeFunctionName, eSetTypeFunctionRegexp, eSetTypeSourceRegexp } BreakpointSetType; CommandObjectBreakpointSet (CommandInterpreter &interpreter); virtual ~CommandObjectBreakpointSet (); virtual bool Execute (Args& command, CommandReturnObject &result); virtual Options * GetOptions (); class CommandOptions : public Options { public: CommandOptions (CommandInterpreter &interpreter); virtual ~CommandOptions (); virtual Error SetOptionValue (uint32_t option_idx, const char *option_arg); void OptionParsingStarting (); const OptionDefinition* GetDefinitions (); // Options table: Required for subclasses of Options. static OptionDefinition g_option_table[]; // Instance variables to hold the values for command options. FileSpecList m_filenames; uint32_t m_line_num; uint32_t m_column; bool m_check_inlines; std::string m_func_name; uint32_t m_func_name_type_mask; std::string m_func_regexp; std::string m_source_text_regexp; FileSpecList m_modules; lldb::addr_t m_load_addr; uint32_t m_ignore_count; lldb::tid_t m_thread_id; uint32_t m_thread_index; std::string m_thread_name; std::string m_queue_name; }; private: bool GetDefaultFile (Target *target, FileSpec &file, CommandReturnObject &result); CommandOptions m_options; }; //------------------------------------------------------------------------- // CommandObjectMultiwordBreakpointModify //------------------------------------------------------------------------- class CommandObjectBreakpointModify : public CommandObject { public: CommandObjectBreakpointModify (CommandInterpreter &interpreter); virtual ~CommandObjectBreakpointModify (); virtual bool Execute (Args& command, CommandReturnObject &result); virtual Options * GetOptions (); class CommandOptions : public Options { public: CommandOptions (CommandInterpreter &interpreter); virtual ~CommandOptions (); virtual Error SetOptionValue (uint32_t option_idx, const char *option_arg); void OptionParsingStarting (); const OptionDefinition* GetDefinitions (); // Options table: Required for subclasses of Options. static OptionDefinition g_option_table[]; // Instance variables to hold the values for command options. uint32_t m_ignore_count; lldb::tid_t m_thread_id; bool m_thread_id_passed; uint32_t m_thread_index; bool m_thread_index_passed; std::string m_thread_name; std::string m_queue_name; std::string m_condition; bool m_enable_passed; bool m_enable_value; bool m_name_passed; bool m_queue_passed; bool m_condition_passed; }; private: CommandOptions m_options; }; //------------------------------------------------------------------------- // CommandObjectBreakpointEnable //------------------------------------------------------------------------- class CommandObjectBreakpointEnable : public CommandObject { public: CommandObjectBreakpointEnable (CommandInterpreter &interpreter); virtual ~CommandObjectBreakpointEnable (); virtual bool Execute (Args& command, CommandReturnObject &result); private: }; //------------------------------------------------------------------------- // CommandObjectBreakpointDisable //------------------------------------------------------------------------- class CommandObjectBreakpointDisable : public CommandObject { public: CommandObjectBreakpointDisable (CommandInterpreter &interpreter); virtual ~CommandObjectBreakpointDisable (); virtual bool Execute (Args& command, CommandReturnObject &result); private: }; //------------------------------------------------------------------------- // CommandObjectBreakpointList //------------------------------------------------------------------------- class CommandObjectBreakpointList : public CommandObject { public: CommandObjectBreakpointList (CommandInterpreter &interpreter); virtual ~CommandObjectBreakpointList (); virtual bool Execute (Args& command, CommandReturnObject &result); virtual Options * GetOptions (); class CommandOptions : public Options { public: CommandOptions (CommandInterpreter &interpreter); virtual ~CommandOptions (); virtual Error SetOptionValue (uint32_t option_idx, const char *option_arg); void OptionParsingStarting (); const OptionDefinition * GetDefinitions (); // Options table: Required for subclasses of Options. static OptionDefinition g_option_table[]; // Instance variables to hold the values for command options. lldb::DescriptionLevel m_level; bool m_internal; }; private: CommandOptions m_options; }; //------------------------------------------------------------------------- // CommandObjectBreakpointClear //------------------------------------------------------------------------- class CommandObjectBreakpointClear : public CommandObject { public: typedef enum BreakpointClearType { eClearTypeInvalid, eClearTypeFileAndLine } BreakpointClearType; CommandObjectBreakpointClear (CommandInterpreter &interpreter); virtual ~CommandObjectBreakpointClear (); virtual bool Execute (Args& command, CommandReturnObject &result); virtual Options * GetOptions (); class CommandOptions : public Options { public: CommandOptions (CommandInterpreter &interpreter); virtual ~CommandOptions (); virtual Error SetOptionValue (uint32_t option_idx, const char *option_arg); void OptionParsingStarting (); const OptionDefinition* GetDefinitions (); // Options table: Required for subclasses of Options. static OptionDefinition g_option_table[]; // Instance variables to hold the values for command options. std::string m_filename; uint32_t m_line_num; }; private: CommandOptions m_options; }; //------------------------------------------------------------------------- // CommandObjectBreakpointDelete //------------------------------------------------------------------------- class CommandObjectBreakpointDelete : public CommandObject { public: CommandObjectBreakpointDelete (CommandInterpreter &interpreter); virtual ~CommandObjectBreakpointDelete (); virtual bool Execute (Args& command, CommandReturnObject &result); private: }; } // namespace lldb_private #endif // liblldb_CommandObjectBreakpoint_h_