[lldb-dev] LLDB sends continue right after connection (gdb-remote)

Benjamin Kemper kemperbenny at gmail.com
Tue Jan 22 06:55:47 PST 2013


Hi,

I've implemented a debugger backend that implements the gdb remote
protocol, and I've noticed that while communication seems OK, right after
the connection from LLDB to my implementation the process resumes
automatically.

I'm guessing that this is not the expected behaviour, but when looking at
the logs I did see LLDB sending the "$vCont" packet without any user
interaction.

I used the following command to connect:
process connect -p gdb-remote connect://localhost:52168

And this is an excerpt from the logs:
ProcessGDBRemote::UpdateThreadList (pid = 1799)
0x7fe2aa2268b0: ThreadGDBRemote::ThreadGDBRemote (pid = 1799, tid = 0x0707)
<  22> send packet: $qThreadStopInfo707#99
size_t
GDBRemoteCommunication::WaitForPacketWithTimeoutMicroSecondsNoLock(StringExtractorGDBRemote
&, uint32_t): Read (buffer, (sizeof(buffer), timeout_usec = 0xf4240, status
= success, error = (null)) => bytes_read = 1
<   1> read packet: +
size_t
GDBRemoteCommunication::WaitForPacketWithTimeoutMicroSecondsNoLock(StringExtractorGDBRemote
&, uint32_t): Read (buffer, (sizeof(buffer), timeout_usec = 0xf4240, status
= success, error = (null)) => bytes_read = 4
<   4> read packet: $#00
<   1> send packet: +
error: failed to get response for 'qThreadStopInfo707'
ProcessGDBRemote::Resume()
ProcessGDBRemote::AsyncThread (arg = 0x7fe2ab00d000, pid = 1799) Got an
event of type: 1...
ProcessGDBRemote::AsyncThread (arg = 0x7fe2ab00d000, pid = 1799) got
eBroadcastBitAsyncContinue: vCont;c:0707
GDBRemoteCommunicationClient::SendContinuePacketAndWaitForResponse ()
GDBRemoteCommunicationClient::SendContinuePacketAndWaitForResponse ()
sending continue packet: vCont;c:0707
<  16> send packet: $vCont;c:0707#b0
size_t
GDBRemoteCommunication::WaitForPacketWithTimeoutMicroSecondsNoLock(StringExtractorGDBRemote
&, uint32_t): Read (buffer, (sizeof(buffer), timeout_usec = 0xf4240, status
= success, error = (null)) => bytes_read = 1
<   1> read packet: +
GDBRemoteCommunicationClient::SendContinuePacketAndWaitForResponse ()
WaitForPacket(vCont;c:0707)
size_t
GDBRemoteCommunication::WaitForPacketWithTimeoutMicroSecondsNoLock(StringExtractorGDBRemote
&, uint32_t): Read (buffer, (sizeof(buffer), timeout_usec = 0xffffffff,
status = success, error = (null)) => bytes_read = 7
<   7> read packet: $W00#b7
<   1> send packet: +
GDBRemoteCommunicationClient::SendContinuePacketAndWaitForResponse () got
packet: W00
GDBRemoteCommunicationClient::SendContinuePacketAndWaitForResponse () =>
exited
ProcessGDBRemote::AsyncThread (arg = 0x7fe2ab00d000, pid = 1799) thread
exiting...

Any ideas why this is happening?

Thanks,
Benjamin.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20130122/9e540ddc/attachment.html>


More information about the lldb-dev mailing list