Hi All,
I was trying to make the LLDB talk to QEMU. I have identified a few problems as 
described below. I will be sending patches in the coming days. Just wanted to 
inform the community in case someone else is also working in this area.

1. The thread ids sent by the qemu start with 0. In LLDB, we treat 0 as invalid 
thread id. Probably we need to change the definition of LLDB_INVALID_THREAD_ID.
2. The stop reply packet from qemu is 'S05'. Code in 
ProcessGDBRemote::SetThreadStopInfo ()  does not handle this case properly. It 
assumes that there will be n:r pair with thread info. 
https://sourceware.org/gdb/onlinedocs/gdb/Stop-Reply-Packets.html
3. We obviously need to provide a target description file with correct register 
information for qemu.
4. The Posix dynamic loader is trying to use auxv vector on host for 
calculating the entry address for remote target (AuxVector::GetAuxvData). This 
can only works when the inferior and debugger are on the same system. Due to 
this reason, we end up calculating wrong load address for remote case. We may 
like to add support for 'qXfer:auxv:read' but should also deal better when this 
information is not supplied by the remote target. 

Thoughts/comments are most welcome.

Thanks,
Abid

_______________________________________________
lldb-dev mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev

Reply via email to