summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/Process/Linux/NativeProcessLinux.h
diff options
context:
space:
mode:
authorChaoren Lin <chaorenl@google.com>2015-02-03 01:50:49 +0000
committerChaoren Lin <chaorenl@google.com>2015-02-03 01:50:49 +0000
commit03f12d6b224cb6691a4fee4e08adc156a3a8fd28 (patch)
tree4366c7eec81220240dd11b201729b8b078c39590 /lldb/source/Plugins/Process/Linux/NativeProcessLinux.h
parentae29d39570cacf4c82590162a26d89bacbb6d8d3 (diff)
downloadbcm5719-llvm-03f12d6b224cb6691a4fee4e08adc156a3a8fd28.tar.gz
bcm5719-llvm-03f12d6b224cb6691a4fee4e08adc156a3a8fd28.zip
llgs: more work on thread stepping.
See https://github.com/tfiala/lldb/issues/75. Not fixed yet but continuing to push this further. Fixes: * Resume() now skips doing deferred notifications if we're doing a vCont;{c,C}. In this case, we're trying to start something up, not defer a stop notification. The default thread action stop mode pickup was triggering a stop because it had at least one stop, which was wrong in the case of a continue. (Bug introduced by previous change.) * Added a variant to ThreadStateCoordinator to specify a set of thread ids to be skipped when triggering stop notifications to non-stopped threads on a deferred signal call. For the case of a stepping thread, it is actually told to step (and is running) for a brief moment, but the thread state coordinator would think it needed to send the stepping thread a stop, which id doesn't need to do. This facility allows me to get around that cleanly. With this change, behavior is now reduced to something I think is essentially a different bug: * Doing a step into libc code from my code crashes llgs. * Doing a next out of a function in my own code crashes llgs. llvm-svn: 227912
Diffstat (limited to 'lldb/source/Plugins/Process/Linux/NativeProcessLinux.h')
-rw-r--r--lldb/source/Plugins/Process/Linux/NativeProcessLinux.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/lldb/source/Plugins/Process/Linux/NativeProcessLinux.h b/lldb/source/Plugins/Process/Linux/NativeProcessLinux.h
index 93d965e6952..e75231be368 100644
--- a/lldb/source/Plugins/Process/Linux/NativeProcessLinux.h
+++ b/lldb/source/Plugins/Process/Linux/NativeProcessLinux.h
@@ -398,6 +398,11 @@ namespace lldb_private
CallAfterRunningThreadsStop (lldb::tid_t tid,
const std::function<void (lldb::tid_t tid)> &call_after_function);
+ void
+ CallAfterRunningThreadsStopWithSkipTID (lldb::tid_t deferred_signal_tid,
+ lldb::tid_t skip_stop_request_tid,
+ const std::function<void (lldb::tid_t tid)> &call_after_function);
+
lldb_private::Error
Detach(lldb::tid_t tid);
};
OpenPOWER on IntegriCloud