[lldb-dev] LLDB and QEMU

Abid, Hafiz Hafiz_Abid at mentor.com
Fri Feb 14 02:38:43 PST 2014


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




More information about the lldb-dev mailing list