[lldb-dev] Increasing support for other gdbservers

Gary Benson gbenson at redhat.com
Tue Mar 31 03:26:22 PDT 2015

Greg Clayton wrote:
> So GDB now supports all architectures and all OS variants in a
> single binary? ARM + x86_64 + i386 + MIPs + PPC for linux, darwin,
> Windows etc? The last time I worked with GDB, which was pre GPLv3,
> each GDB was compiled for a specific architecture (or closely
> related architectures) and a single OS. This is what I meant about
> LLDB handling all architectures and OS variants from the same
> LLDB. If GDB has changed that much since I have last looked at it I
> am very happy to hear that.

Ah, that was a while ago, some things have changed :)  Since about
seven years ago you can configure GDB with --enable-targets=all (or
some subset that you're interested in).  It's not the default, it
takes longer to build, but if you do build like that it should work.

> I know about the register numbering stuff and I would love to see
> support for the "$qXfer:features:" added to LLDB. The one thing this
> data doesn't contain is the register numbers for the ABI (DWARF
> register numbers (for debug info), compiler register numbers (for
> like .eh_frame)), but that info could be inferred from an ABI plugin
> that we could infer from the "osabi" of "GNU/Linux" in the
> target.xml:
> <!DOCTYPE target SYSTEM "gdb-target.dtd">
> <target>
>   <architecture>i386:x86-64</architecture>
>   <osabi>GNU/Linux</osabi>
>   <xi:include href="64bit-core.xml"/>
>   <xi:include href="64bit-sse.xml"/>
>   <xi:include href="64bit-linux.xml"/>
>   <xi:include href="64bit-avx.xml"/>
> </target>

I see that some of GDB's features files have "regnum" fields on the
registers, maybe the ones without just count up?  I have to admit that
I've not done any work on GDB at the register level and my knowledge
of DWARF is such that I know what it is and what it's for but that's
all, so I am guessing here.

> So please do submit patches that implement this and we will be happy
> to approve them.

I've worked on GDB, so any code I write is likely tainted from a
licensing standpoint.  I can make suggestions though.

I know that the different licenses block a lot of cooperation between
the LLDB and GDB communities, but for things like the gdbserver
protocol we could perhaps cooperate through the protocol documentation
in gdb/doc/gdb.texinfo.  That's licensed under GNU FDL, not GPLv3.



More information about the lldb-dev mailing list