From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1567 invoked by alias); 3 Sep 2009 13:27:26 -0000 Received: (qmail 1559 invoked by uid 22791); 3 Sep 2009 13:27:25 -0000 X-SWARE-Spam-Status: No, hits=-2.6 required=5.0 tests=BAYES_00,SPF_HELO_PASS,SPF_PASS X-Spam-Check-By: sourceware.org Received: from smtp12.hushmail.com (HELO smtp12.hushmail.com) (65.39.178.135) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 03 Sep 2009 13:27:20 +0000 Received: from smtp12.hushmail.com (localhost.localdomain [127.0.0.1]) by smtp12.hushmail.com (Postfix) with SMTP id 53A36C010C for ; Thu, 3 Sep 2009 13:27:19 +0000 (UTC) Received: from smtp.hushmail.com (w3.hushmail.com [65.39.178.97]) by smtp12.hushmail.com (Postfix) with ESMTP; Thu, 3 Sep 2009 13:27:19 +0000 (UTC) Received: by smtp.hushmail.com (Postfix, from userid 99) id 06D63B0048; Thu, 3 Sep 2009 13:27:18 +0000 (UTC) MIME-Version: 1.0 Date: Thu, 03 Sep 2009 13:27:00 -0000 To: "Jan Kratochvil" Cc: gdb@sourceware.org Subject: Re: 64bit pointer From: freindlyuser@hushmail.com Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="UTF-8" Message-Id: <20090903132719.06D63B0048@smtp.hushmail.com> Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org X-SW-Source: 2009-09/txt/msg00039.txt.bz2 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Thu, 03 Sep 2009 12:33:25 +0000 Jan Kratochvil wrote: >On Thu, 03 Sep 2009 14:21:41 +0200, freindlyuser@hushmail.com >wrote: >> (gdb) x/s *($rdi+0x8) >> 0x4210a9b7:
> >This syntax is not much recommended, it means the same as: > >(gdb) x/s *(int *) ($rdi+0x8) >0x4210a9b7:
> >On 64bit arch sizeof (int) == 4 but sizeof (void *) == 8 so you >will not fetch >the whole address. > > >> (gdb) x/x $rdi+0x8 >> 0x3a9b4210b7a4: 0x00003a9b4210a9b7 >> (gdb) x/s 0x00003a9b4210a9b7 >> 0x3a9b4210a9b7: "The string it points to" > >Therefore you want one indirection there. > >> Should this be happening? > >Yes. Until GDB forbids dereferencing numeric arguments as `int *' >which IMHO >is more confusing than convenient. [Would a patch be approved?] > > >> Is there a work around where I can read the data in >> 0x00003a9b4210a9b7 without having to manually copy and paste >(ie: >> in the commands that are executed on a breakpoint). > >This way it should work: > >(gdb) x/s *(void **) ($rdi+0x8) >OR >(gdb) p *(char **) ($rdi+0x8) > > >Regards, >Jan The work around works perfectly. Thank you. -----BEGIN PGP SIGNATURE----- Charset: UTF8 Version: Hush 3.0 Note: This signature can be verified at https://www.hushtools.com/verify wpwEAQMCAAYFAkqfxDYACgkQWX1/rrecYT2g+gP+J6na4+MXovA7SJRD1oYPKqbZ9Pu1 Ik4vBR5BFt6RLV0zrYXsAnEq1xOXnac1q3r9XNUA0R1jmKtEFYvJjH44KpdzwIwBBRSS 7M7qeaHZZhDEgfJOFUgWS5KUJgjwRo4Rm2lGLNgmaftQVBrgE5HUQxVicwtdwIO9qyhU i/n0Oas= =+lL9 -----END PGP SIGNATURE-----