[lldb-dev] LLDB Machine Interface Frontend

Abid, Hafiz Hafiz_Abid at mentor.com
Mon May 19 02:48:21 PDT 2014

Hi Deepak,
First, thanks for doing this. I had a quick review. Some comments and questions below.

1. I tried it on Linux but could not make it work with CDT. I asked CDT to use the MI driver instead of GDB(in Debug Configuration->Debugger tab) but it failed. I was wondering if there are any steps I need to follow before I can run it with eclipse. Any version dependency etc. Also when I run it from command line, it does not seem to handle any mi command that I tried.

-file-exec-and-symbols /home/abidh/demos/act
0^error,msg="Driver. Received command '-file-exec-and-symbols /home/abidh/demos/act'. It was not handled"
-break-insert main
0^error,msg="Driver. Received command '-break-insert main'. It was not handled"

2. The Code has many comments that are copies in many headers. They will get stale with time. So it is better to have them in one place only so that it is easy to update them. Some example are
"//                                                       To implement new MI commands derive a new command class from the command base
//                                                         class. To enable the new command for interpretation add the new command class
//                                                         to the command factory."

3. Similar comments about the environment mentioned in many files. Those comments will get stale with time so should be removed.
4. Not very important, but it would be nice if the comments in the header files before classes and functions are written in the same way as rest of the lldb for consistency sake. I am not sure about the policy but the I don’t see date and author name in rest of the lldb either.
5. You have added some utility classes for lldb-mi. Some of the functionality may already be available in LLDB. I can understand that you may not want to depend on LLDB internal classes. But there needs to be a way to share code instead of duplicate. May be a shared utility folder where store such files and they can be used by LLDB core and drivers.
6. Similarly duplication of Driver.cpp would be a maintenance burden. Something we need to think about.
7. I see some functionality is left as TODOs for Linux and OSX. It would be nice if you could list them somewhere so that people working on those system can try to fill the holes.
8. In future, we may like to make the generation of log file an option.


From: lldb-dev-bounces at cs.uiuc.edu [mailto:lldb-dev-bounces at cs.uiuc.edu] On Behalf Of Deepak Panickal
Sent: 16 May 2014 13:52
To: Eran Ifrah
Cc: lldb-dev at cs.uiuc.edu
Subject: Re: [lldb-dev] LLDB Machine Interface Frontend

Hi Eran,

Yeah, I have committed it to the lldb source tree.

That's great! Please try it out.


On 16/05/2014 12:36, Eran Ifrah wrote:

On Fri, May 16, 2014 at 2:15 PM, Deepak Panickal <deepak at codeplay.com<mailto:deepak at codeplay.com>> wrote:
Thanks Jim, have just committed it. Yeah, it works with the GDB/MI interface.

There's no GPL code, it's all written from scratch.
Not all MI commands have been implemented yet, however it should be enough to set breakpoints, view locals.
We're working on adding more commands for viewing/modifying registers, memory etc.

It'll be great if more people from the community can use and test it with other GUIs!


​Hi Deepak,
Is this committed to lldb source tree? If yes, then I can update my local tree and try it with my IDE which also uses GDB/MI
I will report my findings here

On 15/05/2014 18:57, jingham at apple.com<mailto:jingham at apple.com> wrote:
First off, thanks for doing this, that is great!  If this also works with the gdb-mi mode, you will make our emacs friends happy as well.

If this is just an independent tool that doesn't touch the core lldb sources (and doesn't use anything directly from the gdb MI implementation, since we don't want to mix GPL'ed code in with lldb), I see no reason not to just check it in now, and then iterate on it in situ.  That is much easier than handing around patch files, and since there's no chance it will interfere with anybody working on parts of lldb that existed before the patch, can't do any harm.  I spoke to GregC and he agrees this is a reasonable course.

Again, thanks for working on this.


On May 15, 2014, at 10:17 AM, Deepak Panickal <deepak at codeplay.com<mailto:deepak at codeplay.com>> wrote:
Hi Abid,

Thank you, I have attached the zipped patch.
You might have to the change the triple in tools/lldb-mi/MICmnConfig.h for your target.

Please let me know if you have any comments/suggestions.


On 15/05/2014 17:10, Abid, Hafiz wrote:
Hi Deepak,
I can help review/test it when you post the patch.

-----Original Message-----
From: lldb-dev-bounces at cs.uiuc.edu<mailto:lldb-dev-bounces at cs.uiuc.edu> [mailto:lldb-dev-bounces at cs.uiuc.edu<mailto:lldb-dev-bounces at cs.uiuc.edu>]
On Behalf Of Deepak Panickal
Sent: 15 May 2014 12:14
To: lldb-dev at cs.uiuc.edu<mailto:lldb-dev at cs.uiuc.edu>
Subject: [lldb-dev] LLDB Machine Interface Frontend


We have an MI (Machine Interface) frontend to LLDB which works out of the
box with Eclipse, and likely will work with other GUI's based on the GDB/MI
interface. It's been tested on Linux and Windows.

It's ready to upstream and has been developed as an independent tool
residing in the LLDB tools folder. It's based on the LLDB public API without
any changes to LLDB internals.

The patch is quite large as there are many new files.
How should we go about upstreaming? Should I create a diff review as

lldb-dev mailing list
lldb-dev at cs.uiuc.edu<mailto:lldb-dev at cs.uiuc.edu>
lldb-dev mailing list
lldb-dev at cs.uiuc.edu<mailto:lldb-dev at cs.uiuc.edu>

lldb-dev mailing list
lldb-dev at cs.uiuc.edu<mailto:lldb-dev at cs.uiuc.edu>

Eran Ifrah
Author of codelite, a cross platform open source C/C++ IDE: http://www.codelite.org
wxCrafter, a wxWidgets RAD: http://wxcrafter.codelite.org<http://wxcrafter.codelite.org>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20140519/6e348aa6/attachment.html>

More information about the lldb-dev mailing list