emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: lldb support


From: Eli Zaretskii
Subject: Re: lldb support
Date: Sat, 12 Nov 2016 09:47:17 +0200

> From: Toon Claes <address@hidden>
> Cc: address@hidden,  address@hidden,  address@hidden,  address@hidden
> Date: Sat, 12 Nov 2016 08:04:39 +0100
> 
> > Doesn't lldb-mi accept the --interpreter=mi argument on its command
> > line?  That would be strange, since it's supposed to be a
> > compatibility shim, and is advertised to work with Eclipse.
> 
> Yes, it does support the argument, but gdb-mi.el does not seem to
> recognize it.

What do you mean by "doesn't recognize"?  gdb-mi.el doesn't look at
the invocation command, it looks at the 1st response returned by the
debugger.  See the function gdb--check-interpreter in gdb-mi.el.
Evidently, the response produced by lldb-mi doesn't match the criteria
there.  Can you look at the value of 'string' in that function and
tell what it is?

> > If you disable this test in gdb-mi.el, do you get better results?
> 
> These are the errors I am getting when trying to set a breakpoint and
> running the process.
> 
> Command: break hello.swift:19
> Command: -exec-run
> Driver. Received command '5-file-list-exec-source-files'. It was not handled. 
> Command 'file-list-exec-source-files' not in Command Factory
> Driver. Received command '6-file-list-exec-source-file'. It was not handled. 
> Command 'file-list-exec-source-file' not in Command Factory
> Command 'stack-info-frame'. Invalid process during debug session
> Driver. Received command '10-break-list'. It was not handled. Command 
> 'break-list' not in Command Factory
> Driver. Received command '12-break-list'. It was not handled. Command 
> 'break-list' not in Command Factory
> Driver. Received command '14-break-list'. It was not handled. Command 
> 'break-list' not in Command Factory
> Driver. Received command '16-break-list'. It was not handled. Command 
> 'break-list' not in Command Factory
> Driver. Received command '18-break-list'. It was not handled. Command 
> 'break-list' not in Command Factory

I guess lldb-mi is not yet up to speed in its support of the MI
protocol, if it doesn't even support the basic MI input syntax and/or
the '-break-list' command.  The description of the MI protocol input
(in the GDB manual) clearly says that an MI command has the following
formal syntax:

  'MI-COMMAND ==>'
     '[ TOKEN ] "-" OPERATION ( " " OPTION )* [ " --" ] ( " " PARAMETER )* NL'

So it looks like lldb-mi either didn't implement the TOKEN part, or
doesn't yet support the '-break-list' command itself.  This TOKEN part
is very important for the front-end to know which response of the
debugger corresponds to which front-end command.  And '-break-list'
is, of course, a very important command.  Perhaps consider reporting
this to the lldb-mi developers, as these are significant omissions,
and make the tool not very useful with front-ends, to say the least.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]