(cc'ing the new list address)
On Tue, Aug 11, 2015 at 2:03 PM, Hans Wennborg <h...@chromium.org> wrote: > r244664. > > Thanks, > Hans > > On Tue, Aug 11, 2015 at 1:59 PM, Greg Clayton <gclay...@apple.com> wrote: >> Yep, OK to merge. >> >>> On 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