diff options
author | Ewan Crawford <ewan@codeplay.com> | 2015-05-13 09:18:18 +0000 |
---|---|---|
committer | Ewan Crawford <ewan@codeplay.com> | 2015-05-13 09:18:18 +0000 |
commit | 78baa19781920bf2b1332ffd1a88884bd2ba42be (patch) | |
tree | d3052f7dd08a7de25cb85783365d8c774d979c9b /lldb/source/Commands/CommandObjectThread.cpp | |
parent | acf20fa233d680e6855e67b65c66c59a7d9ddf22 (diff) | |
download | llvm-78baa19781920bf2b1332ffd1a88884bd2ba42be.zip llvm-78baa19781920bf2b1332ffd1a88884bd2ba42be.tar.gz llvm-78baa19781920bf2b1332ffd1a88884bd2ba42be.tar.bz2 |
Remote Non-Stop Support
Summary:
This patch is the beginnings of support for Non-stop mode in the remote protocol. Letting a user examine stopped threads, while other threads execute freely.
Non-stop mode is enabled using the setting target.non-stop-mode, which sends a QNonStop packet when establishing the remote connection.
Changes are also made to treat the '?' stop reply packet differently in non-stop mode, according to spec https://sourceware.org/gdb/current/onlinedocs/gdb/Remote-Non_002dStop.html#Remote-Non_002dStop.
A setting for querying the remote for default thread on setup is also included.
Handling of '%' async notification packets will be added next.
Reviewers: clayborg
Subscribers: lldb-commits, ADodds, ted, deepak2427
Differential Revision: http://reviews.llvm.org/D9656
llvm-svn: 237239
Diffstat (limited to 'lldb/source/Commands/CommandObjectThread.cpp')
-rw-r--r-- | lldb/source/Commands/CommandObjectThread.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/lldb/source/Commands/CommandObjectThread.cpp b/lldb/source/Commands/CommandObjectThread.cpp index 307f2d3..d0c82b4 100644 --- a/lldb/source/Commands/CommandObjectThread.cpp +++ b/lldb/source/Commands/CommandObjectThread.cpp @@ -433,6 +433,12 @@ public: m_step_in_avoid_no_debug = eLazyBoolCalculate; m_step_out_avoid_no_debug = eLazyBoolCalculate; m_run_mode = eOnlyDuringStepping; + + // Check if we are in Non-Stop mode + lldb::TargetSP target_sp = m_interpreter.GetDebugger().GetSelectedTarget(); + if (target_sp.get() != nullptr && target_sp->GetNonStopModeEnabled()) + m_run_mode = eOnlyThisThread; + m_avoid_regexp.clear(); m_step_in_target.clear(); m_class_name.clear(); |