[patch] Cut memory address width
Jan Kratochvil
jan.kratochvil@redhat.com
Wed Sep 27 18:37:00 GMT 2006
On Wed, 27 Sep 2006 20:22:11 +0200, Daniel Jacobowitz wrote:
> On Wed, Sep 27, 2006 at 11:20:22AM -0700, Michael Snyder wrote:
> > On Wed, 2006-09-27 at 18:15 +0200, Jan Kratochvil wrote:
> > > Hi,
> > >
> > > `x/x $ebx' on gdb/amd64 debugging inferior/i386 causes Cannot access memory at
> > > address 0xffffce70 (or so) as $ebx is considered `int' and sign-extended to
> > > 64-bit while the resulting address 0xffffffffffffce70 fails to be accessed.
...
> What's interesting is why this behavior is different on x86_64 and
> i386. Where are we doing the sign extension - that's probably where it
> should be fixed, if anywhere.
In such case `paddress' should print full 64-bit addresses.
Currently it is weird as it refuses to access memory while it will show you
that you were accessing 0xffffce70 - the already cut form - it lies.
If you type on i386 gdb that you want to `x/x 0xffffffffffffce70' it works - as
it will cut the address automatically as even the native C compiler would do.
With these two existing behaviors I was feeling it is more expected to cut the
address even for the access. Still I like more the strict forbidding access
and so I would rather like to remove the existing address-cut in `paddress' and
also wherever it exists for the native i386.
Still the current state is inconsistent, no matter which way to go is the right
one.
Regards,
Jan
More information about the Gdb-patches
mailing list