diff options
author | Chaoren Lin <chaorenl@google.com> | 2015-02-03 01:50:49 +0000 |
---|---|---|
committer | Chaoren Lin <chaorenl@google.com> | 2015-02-03 01:50:49 +0000 |
commit | 03f12d6b224cb6691a4fee4e08adc156a3a8fd28 (patch) | |
tree | 4366c7eec81220240dd11b201729b8b078c39590 /lldb/source/Plugins/Process/Linux/NativeProcessLinux.h | |
parent | ae29d39570cacf4c82590162a26d89bacbb6d8d3 (diff) | |
download | bcm5719-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.h | 5 |
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); }; |