[lldb-dev] LLDB use of G/g packets

Benjamin Kemper kemperbenny at gmail.com
Sun Feb 10 06:58:22 PST 2013


I noticed something that I've missed when sending the previous Email.
Looking at the logs, I see LLDB sending "kill" command for no reason:
<lldb.driver.main-thread> <  18> send packet: $m1039ede00,200#86
  1 <lldb.driver.main-thread> <   1> read packet: +
  0 <lldb.driver.main-thread> <1028> read packet:
$4b4c5752000000000000000000000000c04e0000014e0000004e000000000000000000000000000010de9e030100000014de9e030100000018de9e030100000020
  1 <lldb.driver.main-thread> <   1> send packet: +
  2 <lldb.driver.main-thread> <  18> send packet: $m1038d4200,200#21
  3 <lldb.driver.main-thread> <   1> read packet: +
  4 <lldb.driver.main-thread> <1028> read packet:
$e97bf4ffff6666666666662e0f1f8400000000009090909090909090909090909090909090909090909090909090909090909090909090909090909090909090e9
  5 <lldb.driver.main-thread> <   1> send packet: +
  6 <lldb.driver.main-thread> <  21> send packet: $Z0,7fff5fc0d6e5,1#de
  7 <lldb.driver.main-thread> <   1> read packet: +
  8 <lldb.driver.main-thread> <   6> read packet: $OK#9a
  9 <lldb.driver.main-thread> <   1> send packet: +
 10 <lldb.driver.main-thread> <  16> send packet: $qfThreadInfo#bb
 11 <lldb.driver.main-thread> <   1> read packet: +
 12 <lldb.driver.main-thread> <   8> read packet: $m707#0b
 13 <lldb.driver.main-thread> <   1> send packet: +
 14 <lldb.driver.main-thread> <  16> send packet: $qsThreadInfo#c8
 15 <lldb.driver.main-thread> <   1> read packet: +
 16 <lldb.driver.main-thread> <   5> read packet: $l#6c
 17 <lldb.driver.main-thread> <   1> send packet: +
 18 <lldb.driver.main-thread> <  18> send packet: $z0,1005f00d7,1#5a
 19 <lldb.driver.main-thread> <   1> read packet: +
 20 <lldb.driver.main-thread> <   6> read packet: $OK#9a
 21 <lldb.driver.main-thread> <   1> send packet: +
 22 <lldb.driver.main-thread> <  21> send packet: $z0,7fff5fc0d6e5,1#fe
 23 <lldb.driver.main-thread> <   1> read packet: +
 24 <lldb.driver.main-thread> <   6> read packet: $OK#9a
 25 <lldb.driver.main-thread> <   1> send packet: +
 26 <lldb.driver.main-thread> <   5> send packet: $k#6b
 27 <lldb.driver.main-thread> <   1> read packet: +
 28 <lldb.driver.main-thread> <   6> read packet: $OK#9a
 29 <lldb.driver.main-thread> <   1> send packet: +
 30    6> send packet: $p2#a2
 31 <lldb.driver.main-thread> <   1> read packet: +
 32 <lldb.driver.main-thread> <   4> read packet: $#00
 33 <lldb.driver.main-thread> <   1> send packet: +
 34 <lldb.driver.main-thread> <   6> send packet: $p3#a3

Here are my commands in the lldb console:
➜  build  lldb /bin/ls
Current executable set to '/bin/ls' (x86_64).
(lldb) log enable -f /tmp/packets.txt  gdb-remote packets
(lldb) process connect -p gdb-remote connect://localhost:58985
Process 1799 stopped
* thread #1: tid = 0x0707, , stop reason = signal SIGINT
    frame #0:
(lldb)

Why might LLDB send the 'kill' command without "permission"?

The weird thing is that after it sends the kill command, it then start
requesting for register values using the '$p' commands...

Any ideas why this is happening?

Regards,
Benjamin.



On Sun, Feb 10, 2013 at 3:19 PM, Benjamin Kemper <kemperbenny at gmail.com>wrote:

> Hi,
>
> I'm implementing a debugger backend that implements the gdb remote
> protocol and adding extensions to support LLDB also.
>
> I've added support for the qRegisterInfo packet and I've noticed in the
> logs that LLDB uses the p/P packets instead of the G/g packets.
>
> Is there a special reason why it uses multiple packets instead of one?
>
> Maybe I didn't implement enough "information" packets and LLDB doesn't
> know how to read g/G packets? If so, what packets are missing?
>
> Thanks,
> Benjamin.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20130210/f3acda49/attachment.html>


More information about the lldb-dev mailing list