[GSoC] Re-implement lldb-mi on top of the LLDB public API

Hi LLVM folks,

During this summer I was working on re-implementing of lldb-mi to correctly use LLDB public API. You are welcome to read my final report where I describe the contribution and challenges I faced with.
Link to final report: https://apolyakov.github.io/GSoC-2018/

Nice to see great progress in this area!

Thank you, Leonard,
I’m going to keep contributing to LLVM, so I think this is not the end!

Can you please list the missing MI commands? This would be very valuable to both future contributors and also to the users of the LLDB MI. Thanks!

There are lots of them, so I don’t think I can list them all. But if you are interested in some command you need to do a few simple steps:

  1. go to GDB/MI specification and find the command you are interested in;
  2. go to lldb-mi and try to find that command there, if you can’t find it, then it’s likely not yet implemented;

It’s really simple. For example, we want to check -target-download command. To do so, we don’t need to look at each lldb-mi’s source file, we just open a file related to target - MICmdCmdTarget.h - and look only there.