warning: Target-supplied registers are not supported by the current architecture

William Tambe tambewilliam@gmail.com
Mon Oct 9 10:46:28 GMT 2023

On Mon, Oct 9, 2023 at 1:45 AM Aktemur, Tankut Baris
<tankut.baris.aktemur@intel.com> wrote:
> On Monday, October 9, 2023 1:14 AM, William Tambe wrote:
> > I am working on gdbserver support.
> >
> > I am able to remotely execute the executable and set breakpoints,
> > however right after issuing the `target remote` command, I am getting
> > following warning:
> >
> > (gdb) target remote
> > Remote debugging using
> > warning: Target-supplied registers are not supported by the current architecture
> >
> > Error message is coming from gdb/target-descriptions.c at line 576,
> > due to data->arch_regs.empty () return true.
> >
> > Any idea what I might have missed causing data->arch_regs.empty () to
> > return true ?
> When gdbserver is started with the --remote-debug flag, it prints the
> received and sent RSP packages.  There, the target description XML would
> be seen.  I'd suggest starting with inspecting if the contents of that XML
> look right.

Below snippet of the prints when using --remote-debug shows the target
description XML.
I see a star in front of <reg name ... /> blocks; any idea whether
that could be the issue ?
In the source code, I am not using an actual XML file, instead, I am
manually building the target description XML through calls to

[remote] getpkt: getpkt ("qXfer:features:read:target.xml:0,1000");
[no ack sent]
[remote] putpkt_binary_1: putpkt ("$l<?xml version="1.0"?>
<!DOCTYPE target SYSTEM "gdb-target.dtd">
  <feature name="org.gnu.gdb.pu32.core">
 * <reg name="r0" bitsize="32" type="uint32" regnum="0"/>
 * <reg name="r1" bitsize="32" type="uint32" regnum="1"/>
 * <reg name="r2" bitsize="32" type="uint32" regnum="2"/>
 * <reg name="r3" bitsize="32" type="uint32" regnum="3"/>
 * <reg name="r4" bitsize="32" type="uint32" regnum="4"/>
 * <reg name="r5" bitsize="32" type="uint32" regnum="5"/>
 * <reg name="r6" bitsize="32" type="uint32" regnum="6"/>
 * <reg name="r7" bitsize="32" type="uint32" regnum="7"/>
 * <reg name="r8" bitsize="32" type="uint32" regnum="8"/>
 * <reg name="r9" bitsize="32" type="uint32" regnum="9"/>
 * <reg name="r10" bitsize="32" type="uint32" regnum="10"/>
 * <reg name="r11" bitsize="32" type="uint32" regnum="11"/>
 * <reg name="r12" bitsize="32" type="uint32" regnum="12"/>
 * <reg name="r13" bitsize="32" type="uint32" regnum="13"/>
 * <reg name="r14" bitsize="32" type="uint32" regnum="14"/>
 * <reg name="r15" bitsize="32" type="uint32" regnum="15"/>
 * <reg name="pc" bitsize="32" type="uint32" regnum="16"/>
#ae"); [noack mode]
[remote] getpkt: getpkt ("qXfer:auxv:read::0,1000");  [no ack sent]

Any ideas on what I am doing wrong ?

> Regards
> -Baris
> Intel Deutschland GmbH
> Registered Address: Am Campeon 10, 85579 Neubiberg, Germany
> Tel: +49 89 99 8853-0, www.intel.de <http://www.intel.de>
> Managing Directors: Christin Eisenschmid, Sharon Heck, Tiffany Doon Silva
> Chairperson of the Supervisory Board: Nicole Lau
> Registered Office: Munich
> Commercial Register: Amtsgericht Muenchen HRB 186928

More information about the Gdb mailing list