From 0cac4ca3916ac24ab6139d03cbfd18db9e715bfe Mon Sep 17 00:00:00 2001 From: Ed Maste Date: Tue, 25 Nov 2014 21:00:58 +0000 Subject: Import LLDB as of upstream SVN r216948 (git 50f7fe44) This corresponds with the branchpoint for the 3.5 release. A number of files not required for the FreeBSD build have been removed. Sponsored by: DARPA, AFRL --- source/Target/ThreadList.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'source/Target/ThreadList.cpp') diff --git a/source/Target/ThreadList.cpp b/source/Target/ThreadList.cpp index 4fffdac9a34e..7fb16fdac5c0 100644 --- a/source/Target/ThreadList.cpp +++ b/source/Target/ThreadList.cpp @@ -262,7 +262,7 @@ ThreadList::ShouldStop (Event *event_ptr) Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_STEP)); // The ShouldStop method of the threads can do a whole lot of work, - // running breakpoint commands & conditions, etc. So we don't want + // figuring out whether the thread plan conditions are met. So we don't want // to keep the ThreadList locked the whole time we are doing this. // FIXME: It is possible that running code could cause new threads // to be created. If that happens we will miss asking them whether @@ -287,7 +287,16 @@ ThreadList::ShouldStop (Event *event_ptr) } bool did_anybody_stop_for_a_reason = false; + + // If the event is an Interrupt event, then we're going to stop no matter what. Otherwise, presume we won't stop. bool should_stop = false; + if (Process::ProcessEventData::GetInterruptedFromEvent(event_ptr)) + { + if (log) + log->Printf("ThreadList::%s handling interrupt event, should stop set to true", __FUNCTION__); + + should_stop = true; + } // Now we run through all the threads and get their stop info's. We want to make sure to do this first before // we start running the ShouldStop, because one thread's ShouldStop could destroy information (like deleting a -- cgit v1.3