aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Commands/CommandObjectBreakpoint.h
diff options
context:
space:
mode:
authorJim Ingham <jingham@apple.com>2010-06-16 02:00:15 +0000
committerJim Ingham <jingham@apple.com>2010-06-16 02:00:15 +0000
commit1b54c88cc4f8582222644d65dfd61703206430ef (patch)
tree8f720e2946e32ece13de194e4ccfafffa21d9b3f /lldb/source/Commands/CommandObjectBreakpoint.h
parentbabff2ce5644a5f2af3a9cac323c1a97f39a90a1 (diff)
downloadllvm-1b54c88cc4f8582222644d65dfd61703206430ef.zip
llvm-1b54c88cc4f8582222644d65dfd61703206430ef.tar.gz
llvm-1b54c88cc4f8582222644d65dfd61703206430ef.tar.bz2
Add a "thread specification" class that specifies thread specific breakpoints by name, index, queue or TID.
Push this through all the breakpoint management code. Allow this to be set when the breakpoint is created. Fix the Process classes so that a breakpoint hit that is not for a particular thread is not reported as a breakpoint hit event for that thread. Added a "breakpoint configure" command to allow you to reset any of the thread specific options (or the ignore count.) llvm-svn: 106078
Diffstat (limited to 'lldb/source/Commands/CommandObjectBreakpoint.h')
-rw-r--r--lldb/source/Commands/CommandObjectBreakpoint.h64
1 files changed, 64 insertions, 0 deletions
diff --git a/lldb/source/Commands/CommandObjectBreakpoint.h b/lldb/source/Commands/CommandObjectBreakpoint.h
index 8e70591..7e7bd61 100644
--- a/lldb/source/Commands/CommandObjectBreakpoint.h
+++ b/lldb/source/Commands/CommandObjectBreakpoint.h
@@ -106,6 +106,70 @@ public:
std::string m_func_regexp;
lldb::addr_t m_load_addr;
STLStringArray m_modules;
+ int32_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:
+ CommandOptions m_options;
+};
+
+//-------------------------------------------------------------------------
+// CommandObjectMultiwordBreakpointConfigure
+//-------------------------------------------------------------------------
+
+
+class CommandObjectBreakpointConfigure : public CommandObject
+{
+public:
+
+ CommandObjectBreakpointConfigure ();
+
+ virtual
+ ~CommandObjectBreakpointConfigure ();
+
+ virtual bool
+ Execute (Args& command,
+ CommandContext *context,
+ CommandInterpreter *interpreter,
+ CommandReturnObject &result);
+
+ virtual Options *
+ GetOptions ();
+
+ class CommandOptions : public Options
+ {
+ public:
+
+ CommandOptions ();
+
+ virtual
+ ~CommandOptions ();
+
+ virtual Error
+ SetOptionValue (int option_idx, const char *option_arg);
+
+ void
+ ResetOptionValues ();
+
+ const lldb::OptionDefinition*
+ GetDefinitions ();
+
+ // Options table: Required for subclasses of Options.
+
+ static lldb::OptionDefinition g_option_table[];
+
+ // Instance variables to hold the values for command options.
+
+ int32_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;
};