From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 66927 invoked by alias); 27 Feb 2018 10:26:04 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 66913 invoked by uid 89); 27 Feb 2018 10:26:04 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.6 required=5.0 tests=BAYES_00,FREEMAIL_FROM,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_LAZY_DOMAIN_SECURITY,RCVD_IN_DNSWL_LOW autolearn=ham version=3.3.2 spammy=H*r:sk:smtp1-g, HX-HELO:sk:smtp1-g, H*RU:212.27.42.1, Hx-spam-relays-external:sk:smtp1-g X-HELO: smtp1-g21.free.fr Received: from smtp1-g21.free.fr (HELO smtp1-g21.free.fr) (212.27.42.1) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 27 Feb 2018 10:26:02 +0000 Received: from zimbra20-e3.priv.proxad.net (unknown [172.20.243.170]) by smtp1-g21.free.fr (Postfix) with ESMTP id BBD1CB005C4; Tue, 27 Feb 2018 11:25:59 +0100 (CET) Date: Tue, 27 Feb 2018 10:26:00 -0000 From: tgingold@free.fr To: Xavier Roirand Cc: brobecker@adacore.com, Xavier Roirand , gdb-patches@sourceware.org Message-ID: <1877727416.440229.1519727159360.JavaMail.root@zimbra20-e3> In-Reply-To: <1519726190-31009-1-git-send-email-roirand@adacore.com> Subject: Re: [RFA] Implement darwin remote TARGET_OBJECT_DARWIN_DYLD_INFO. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Authenticated-User: tgingold@free.fr X-SW-Source: 2018-02/txt/msg00419.txt.bz2 Hi, A bit of context. I have never submitted this code before because it doesn't use the official= gdb remote packet (=E2=80=98qXfer:libraries:read=E2=80=99) but the one use= d by Apple (aka lldb) debugserver. So with this patch, gdb is able to use debugserver. Tristan. ----- Mail original ----- > From: Xavier Roirand >=20 > gdb/ChangeLog (Tristan Gingold ): >=20 > * remote.c (remote_xfer_partial): Handle DARWIN_DYLD_INFO. > --- > gdb/ChangeLog | 6 ++++++ > gdb/remote.c | 33 +++++++++++++++++++++++++++++++++ > 2 files changed, 39 insertions(+) >=20 > diff --git a/gdb/ChangeLog b/gdb/ChangeLog > index b9a9bcd..098ebda 100644 > --- a/gdb/ChangeLog > +++ b/gdb/ChangeLog > @@ -1,3 +1,9 @@ > + > +2018-02-27 Tristan Gingold > + > + Pushed by Xavier Roirand . > + * remote.c (remote_xfer_partial): Handle DARWIN_DYLD_INFO. > + > 2018-02-26 Maciej W. Rozycki >=20=20 > * mips-tdep.c (mips_gdbarch_init): Don't use a 32-bit BFD > diff --git a/gdb/remote.c b/gdb/remote.c > index 15d6c5b..95fbfc1 100644 > --- a/gdb/remote.c > +++ b/gdb/remote.c > @@ -10495,6 +10495,39 @@ remote_xfer_partial (struct target_ops *ops, > enum target_object object, > return TARGET_XFER_E_IO; > } >=20=20 > + if (object =3D=3D TARGET_OBJECT_DARWIN_DYLD_INFO) > + { > + /* Can only read. */ > + if (readbuf =3D=3D NULL) > + return TARGET_XFER_E_IO; > + > + if (offset =3D=3D 0 && len <=3D 8) > + { > + ULONGEST addr; > + int i; > + > + putpkt ("qShlibInfoAddr"); > + getpkt (&rs->buf, &rs->buf_size, 0); > + if (packet_check_result (rs->buf) !=3D PACKET_OK) > + return TARGET_XFER_E_IO; > + > + /* The packet contains the address in hex (but not suitable for > + hex2bin as the number of digits is arbitrary. */ > + addr =3D strtoulst (rs->buf, NULL, 16); > + > + /* Store it in big-endian. */ > + for (i =3D len - 1; i >=3D 0; i--) > + { > + readbuf[i] =3D addr & 0xff; > + addr >>=3D 8; > + } > + > + *xfered_len =3D len; > + return TARGET_XFER_OK; > + } > + else > + return TARGET_XFER_EOF; > + } > /* Only handle flash writes. */ > if (writebuf !=3D NULL) > { > -- > 2.7.4 >=20 >=20