[Lldb-commits] [lldb] r243091 - Handle old style S packet correctly
Hans Wennborg via lldb-commits
lldb-commits at lists.llvm.org
Tue Aug 11 14:04:39 PDT 2015
(cc'ing the new list address)
On Tue, Aug 11, 2015 at 2:03 PM, Hans Wennborg <hans at chromium.org> wrote:
> r244664.
>
> Thanks,
> Hans
>
> On Tue, Aug 11, 2015 at 1:59 PM, Greg Clayton <gclayton at apple.com> wrote:
>> Yep, OK to merge.
>>
>>> On Jul 29, 2015, at 8:56 AM, Hans Wennborg <hans at 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.Attarde at imgtec.com> wrote:
>>>> Hi Hans,
>>>>
>>>> Could you please add this to the release branch?
>>>>
>>>> Thanks
>>>> Bhushan
>>>>
>>>> -----Original Message-----
>>>> From: lldb-commits-bounces at cs.uiuc.edu [mailto:lldb-commits-bounces at cs.uiuc.edu] On Behalf Of Bhushan Attarde
>>>> Sent: 24 July 2015 09:36
>>>> To: lldb-commits at 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-commits at cs.uiuc.edu
>>>> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
>>
More information about the lldb-commits
mailing list