Ping?
On Wed, Jul 29, 2015 at 8:56 AM, Hans Wennborg <h...@chromium.org> wrote: > Greg, I believe you're the code owner here. OK to merge? > > On Tue, Jul 28, 2015 at 9:05 PM, Bhushan Attarde > <bhushan.atta...@imgtec.com> wrote: >> Hi Hans, >> >> Could you please add this to the release branch? >> >> Thanks >> Bhushan >> >> -----Original Message----- >> From: lldb-commits-boun...@cs.uiuc.edu >> [mailto:lldb-commits-boun...@cs.uiuc.edu] On Behalf Of Bhushan Attarde >> Sent: 24 July 2015 09:36 >> To: lldb-comm...@cs.uiuc.edu >> Subject: [Lldb-commits] [lldb] r243091 - Handle old style S packet correctly >> >> Author: bhushan.attarde >> Date: Thu Jul 23 23:06:20 2015 >> New Revision: 243091 >> >> URL: http://llvm.org/viewvc/llvm-project?rev=243091&view=rev >> Log: >> Handle old style S packet correctly >> >> SUMMARY: >> This patch fixes couple of issues: >> 1. A thread tries to lock a mutex which is already locked. >> 2. Updating a thread list before the stop packet is parsed so that it >> can get a valid thread id and allows to set the stop info correctly. >> >> Reviewers: clayborg >> Subscribers: mohit.bhakkad, sagar, jaydeep, lldb-commits >> Differential Revision: http://reviews.llvm.org/D11449 >> >> Modified: >> lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp >> >> Modified: lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp >> URL: >> http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp?rev=243091&r1=243090&r2=243091&view=diff >> ============================================================================== >> --- lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp >> (original) >> +++ lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp >> +++ Thu Jul 23 23:06:20 2015 >> @@ -371,7 +371,7 @@ ProcessGDBRemote::ProcessGDBRemote(Targe >> m_flags (0), >> m_gdb_comm (), >> m_debugserver_pid (LLDB_INVALID_PROCESS_ID), >> - m_last_stop_packet_mutex (Mutex::eMutexTypeNormal), >> + m_last_stop_packet_mutex (Mutex::eMutexTypeRecursive), >> m_register_info (), >> m_async_broadcaster (NULL, "lldb.process.gdb-remote.async-broadcaster"), >> m_async_thread_state_mutex(Mutex::eMutexTypeRecursive), >> @@ -2485,6 +2485,18 @@ ProcessGDBRemote::SetThreadStopInfo (Str >> } >> } >> >> + if (tid == LLDB_INVALID_THREAD_ID) >> + { >> + // A thread id may be invalid if the response is old style >> 'S' packet which does not provide the >> + // thread information. So update the thread list and choose >> the first one. >> + UpdateThreadIDList (); >> + >> + if (!m_thread_ids.empty ()) >> + { >> + tid = m_thread_ids.front (); >> + } >> + } >> + >> ThreadSP thread_sp = SetThreadStopInfo (tid, >> expedited_register_map, >> signo, @@ -2499,19 >> +2511,6 @@ ProcessGDBRemote::SetThreadStopInfo (Str >> queue_kind, >> queue_serial); >> >> - // If the response is old style 'S' packet which does not >> provide us with thread information >> - // then update the thread list and choose the first one. >> - if (!thread_sp) >> - { >> - UpdateThreadIDList (); >> - >> - if (!m_thread_ids.empty ()) >> - { >> - Mutex::Locker locker (m_thread_list_real.GetMutex ()); >> - thread_sp = m_thread_list_real.FindThreadByProtocolID >> (m_thread_ids.front (), false); >> - } >> - } >> - >> return eStateStopped; >> } >> break; >> >> >> _______________________________________________ >> lldb-commits mailing list >> lldb-comm...@cs.uiuc.edu >> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits