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
{
_______________________________________________
lldb-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits