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

**URL:** <https://discourse.llvm.org/t/gsoc-re-implement-lldb-mi-on-top-of-the-lldb-public-api/49430>\
**Category:** LLVM Dev List Archives\
**Created:** [August 12, 2018, 9:49pm UTC](https://discourse.llvm.org/t/gsoc-re-implement-lldb-mi-on-top-of-the-lldb-public-api/49430 "2018-08-12T21:49:28Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Alexander\_Polyakov](https://avatars.discourse-cdn.com/v4/letter/a/94ad74/32.png) [@Alexander\_Polyakov](https://discourse.llvm.org/u/Alexander_Polyakov)\
**Post date:** [August 12, 2018, 9:49pm UTC](https://discourse.llvm.org/t/gsoc-re-implement-lldb-mi-on-top-of-the-lldb-public-api/49430/1 "2018-08-12T21:49:28Z")

</div>

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/](https://apolyakov.github.io/GSoC-2018/)

---

<div class="post-metadata">

**Author:** ![Leonard\_Mosescu1](https://avatars.discourse-cdn.com/v4/letter/l/b3f665/32.png) [@Leonard\_Mosescu1](https://discourse.llvm.org/u/Leonard_Mosescu1)\
**Post date:** [August 13, 2018, 5:15pm UTC](https://discourse.llvm.org/t/gsoc-re-implement-lldb-mi-on-top-of-the-lldb-public-api/49430/2 "2018-08-13T17:15:42Z")

</div>

Nice to see great progress in this area!

---

<div class="post-metadata">

**Author:** ![Alexander\_Polyakov](https://avatars.discourse-cdn.com/v4/letter/a/94ad74/32.png) [@Alexander\_Polyakov](https://discourse.llvm.org/u/Alexander_Polyakov)\
**Post date:** [August 13, 2018, 6:28pm UTC](https://discourse.llvm.org/t/gsoc-re-implement-lldb-mi-on-top-of-the-lldb-public-api/49430/3 "2018-08-13T18:28:43Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![Leonard\_Mosescu1](https://avatars.discourse-cdn.com/v4/letter/l/b3f665/32.png) [@Leonard\_Mosescu1](https://discourse.llvm.org/u/Leonard_Mosescu1)\
**Post date:** [August 13, 2018, 7:09pm UTC](https://discourse.llvm.org/t/gsoc-re-implement-lldb-mi-on-top-of-the-lldb-public-api/49430/4 "2018-08-13T19:09:36Z")

</div>

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!

---

<div class="post-metadata">

**Author:** ![Alexander\_Polyakov](https://avatars.discourse-cdn.com/v4/letter/a/94ad74/32.png) [@Alexander\_Polyakov](https://discourse.llvm.org/u/Alexander_Polyakov)\
**Post date:** [August 13, 2018, 7:47pm UTC](https://discourse.llvm.org/t/gsoc-re-implement-lldb-mi-on-top-of-the-lldb-public-api/49430/5 "2018-08-13T19:47:30Z")

</div>

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](https://sourceware.org/gdb/onlinedocs/gdb/GDB_002fMI.html) 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.
