On Feb 10, 2013, at 6:58 AM, Benjamin Kemper <[email protected]> wrote:
> 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"? You will need to debug the LLDB sources to see why this isn't being sent. I know of no reason why this should be happening, so this is probably a bug. > > 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? > No, none at all. You will need to debug this. The only place the "k" packet is sent is from inside: ProcessGDBRemote::DoDestroy () There is logging that can be enabled. Add the "process" category to the "gdb-remote" logging and use the "--stack" option to print out a backtrace: (lldb) log enable --stack -f /tmp/process.txt gdb-remote process You should then see a stack backtrace to see who is calling DoDestroy()... > > > On Sun, Feb 10, 2013 at 3:19 PM, Benjamin Kemper <[email protected]> > 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. > > _______________________________________________ > lldb-dev mailing list > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev _______________________________________________ lldb-dev mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
