LLDB for bare-iron targets lacking support for qC /qfThreadInfo packet


The gdb-stub running on a MIPS bare-iron board lacks support for qC /qfThreadInfo packet. Once the LLDB is connected to the target it cannot proceed further as there is no process and/or thread information available from the target. However GDB is able to debug the application as it ignores the output of qC /qfThreadInfo packet if they are not supported. GDB assumes that a process/thread X is available for debugging.

Is there any way in LLDB to support such bare-iron targets where qC /qfThreadInfo packets are not supported?



One option is to send a ? packet to get a stop reply packet back. The stop reply should contain a "thread:XXXX;" key/value pair and you could just make the pid == tid == XXXX. We currently try these in the order below:

1 - qProcessInfo
2 - qC
3 - qfThreadInfo

Now we could add a fourth:

4 - ?

Hi Greg,

The '?' packet always returns 'S05'. There is no thread information available in any of the packets.


I guess we can just make pid == 1 and tid == 1 in this case. As long as a stop reply is responding we should be able to debug.