[Lldb-commits] [lldb] r247773 - [LLDB][MIPS] Debug bare-iron targets lacking support for qC /qfThreadInfo

Jaydeep Patil via lldb-commits lldb-commits at lists.llvm.org
Tue Sep 15 21:04:02 PDT 2015


Author: jaydeep
Date: Tue Sep 15 23:04:01 2015
New Revision: 247773

URL: http://llvm.org/viewvc/llvm-project?rev=247773&view=rev
Log:
[LLDB][MIPS] Debug bare-iron targets lacking support for qC /qfThreadInfo
    SUMMARY:
    Refer to http://lists.llvm.org/pipermail/lldb-dev/2015-August/008024.html for discussion
    on this topic. Bare-iron target like YAMON gdb-stub does not support qProcessInfo, qC,
    qfThreadInfo, Hg and Hc packets. Reply from ? packet is as simple as S05. There is no 
    packet which gives us process or threads information. In such cases, assume pid=tid=1.

    Reviewers: clayborg
    Subscribers: nitesh.jain, mohit.bhakkad, sagar, bhushan and lldb-commits
    Differential Revision: http://reviews.llvm.org/D12876

Modified:
    lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp

Modified: lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp?rev=247773&r1=247772&r2=247773&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp (original)
+++ lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp Tue Sep 15 23:04:01 2015
@@ -3396,6 +3396,17 @@ GDBRemoteCommunicationClient::SetCurrent
             m_curr_tid = tid;
             return true;
         }
+
+        /*
+         * Connected bare-iron target (like YAMON gdb-stub) may not have support for Hg packet.
+         * The reply from '?' packet could be as simple as 'S05'. There is no packet which can
+         * give us pid and/or tid. Assume pid=tid=1 in such cases.
+        */
+        if (!response.IsNormalResponse() && IsConnected())
+        {
+            m_curr_tid = 1;
+            return true;
+        }
     }
     return false;
 }
@@ -3422,6 +3433,17 @@ GDBRemoteCommunicationClient::SetCurrent
             m_curr_tid_run = tid;
             return true;
         }
+
+        /*
+         * Connected bare-iron target (like YAMON gdb-stub) may not have support for Hc packet.
+         * The reply from '?' packet could be as simple as 'S05'. There is no packet which can
+         * give us pid and/or tid. Assume pid=tid=1 in such cases.
+        */
+        if (!response.IsNormalResponse() && IsConnected())
+        {
+            m_curr_tid_run = 1;
+            return true;
+        }
     }
     return false;
 }
@@ -3547,6 +3569,17 @@ GDBRemoteCommunicationClient::GetCurrent
                 } while (ch == ',');            // Make sure we got a comma separator
             }
         }
+
+        /*
+         * Connected bare-iron target (like YAMON gdb-stub) may not have support for
+         * qProcessInfo, qC and qfThreadInfo packets. The reply from '?' packet could
+         * be as simple as 'S05'. There is no packet which can give us pid and/or tid.
+         * Assume pid=tid=1 in such cases.
+        */
+        if (!response.IsNormalResponse() && thread_ids.size() == 0 && IsConnected())
+        {
+            thread_ids.push_back (1);
+        }
     }
     else
     {




More information about the lldb-commits mailing list