[lldb-dev] Emacs LLDB support & the GDB/MI Interface

Eli Zaretskii via lldb-dev lldb-dev at lists.llvm.org
Sat Jul 29 21:15:29 PDT 2017


On July 30, 2017 7:05:52 AM GMT+03:00, Eli Zaretskii via lldb-dev <lldb-dev at lists.llvm.org> wrote:
> On July 30, 2017 6:30:04 AM GMT+03:00, Zachary Turner
> <zturner at google.com> wrote:
> > Are we talking about some kind of mi support other than lldb's
> > existing MI
> > interface? Afaik it works reasonably well (for some definition of
> > reasonably well), and is even used for example in msvc on windows to
> > support remote debugging of non windows targets.
> > 
> > That said, most lldb developers are paid by their company to work on
> > specific things that are important to their company's users, and
> emacs
> > support is probably not going to be that high up on the list.
> > 
> > So if you can figure out where the deficiencies are in the existing
> mi
> > implementation, patches are always welcome
> > On Sat, Jul 29, 2017 at 7:39 PM Eli Zaretskii via lldb-dev <
> > lldb-dev at lists.llvm.org> wrote:
> > 
> > > > Date: Sat, 29 Jul 2017 22:43:59 +0200
> > > > Cc: lldb-dev at lists.llvm.org
> > > > From: Jan Kratochvil via lldb-dev <lldb-dev at lists.llvm.org>
> > > >
> > > > MI protocol was designed to minimize the amount of data
> > transferred
> > > between
> > > > gdb/lldb and a front end.  But this communication isn't anything
> > > expensive as
> > > > the debugger always runs on the same host as the frontend anyway
> > > > (gdb/lldb<->gdbserver link is for remote debugging). 
> > Unfortunately
> > > complexity
> > > > of the GDB/MI protocol from this misoptimization leads to many
> > bugs on
> > > both
> > > > sides of the implementation, for GDB:
> > > >
> > >
> >
> https://sourceware.org/bugzilla/buglist.cgi?bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=SUSPENDED&bug_status=WAITING&bug_status=REOPENED&component=mi&list_id=37310&product=gdb&query_format=advanced
> > > >       101 bugs found.
> > > >
> > > > The MI protocol in use does not conform to its spec as there is
> a
> > > bug-to-bug
> > > > compatibility instead such as:
> > > >      
> https://sourceware.org/ml/gdb-patches/2008-11/msg00275.html
> > > >
> > > > There still also isn't any reasonable MI library to be used by a
> > front
> > > end.
> > >
> > > Correct or not, buggy or not, the Emacs support for GDB is based
> on
> > > MI, and it works reasonably well for the last few years.  So much
> so
> > > that Emacs developers have deprecated the previous GUD interface
> > based
> > > on annotations (which are also deprecated by the GDB team).
> > >
> > > > I find the LLDB API to be a better choice to be used by the
> > > frontend/emacs
> > > > (I have only little but great experience with the LLDB API).
> > >
> > > Good luck with that attitude having LLDB support in Emacs any time
> > > soon.  Even supporting it via the ancient GUD, which required a
> > couple
> > > of minor changes, was met with some resistance.  (Some think that
> > this
> > > resistance was overcome, but IMO the jury is still out on that
> one,
> > > and we won't know the truth until an attempt to add that support
> is
> > > made in earnest.)
> > >
> > > Having LLDB support MI would solve this problem cleanly and
> > > seamlessly.  It's your call to decide whether Emacs support is
> > > important enough to you to do that.
> > > _______________________________________________
> > > lldb-dev mailing list
> > > lldb-dev at lists.llvm.org
> > > http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev
> > >
> 
> Last time I tried, it wasn't "reasonable" enough to start debugging a
> program under Emacs.  See this discussion for details:
> 
> http://lists.llvm.org/pipermail/llvm-dev/2016-December/108512.html
> 
> The failed commands it shows are the initial ones issued by Emacs
> when a debugging session starts.  Without support of these commands in
> lldb-mi there's no hope for any
> practical debugging using lldb.
> If llvm developers could implement those minimal commands, maybe the
> rest would be easier.
> _______________________________________________
> lldb-dev mailing list
> lldb-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev

Sorry, I meant http://lists.llvm.org/pipermail/lldb-dev/2016-December/108511.html


More information about the lldb-dev mailing list