src/gdb ChangeLog findvar.c testsuite/ChangeLo ...
brobecke@sourceware.org
brobecke@sourceware.org
Thu Nov 10 17:14:00 GMT 2011
CVSROOT: /cvs/src
Module name: src
Changes by: brobecke@sourceware.org 2011-11-10 17:14:42
Modified files:
gdb : ChangeLog findvar.c
gdb/testsuite : ChangeLog
Added files:
gdb/testsuite/gdb.ada: small_reg_param.exp
gdb/testsuite/gdb.ada/small_reg_param: foo.adb pck.adb pck.ads
Log message:
read_frame_register_value and big endian arches
The read_frame_register_value function as it was implemented introduced
a regression on big-endian targets. The problem appears when trying to
get the value of an entity stored inside a register, and when the size
of the entity is smaller than the size of the register. In that case,
we were always reading the first N bytes of the register, which is wrong
for big-endian architectures, where we need to read the last N bytes of
the register.
gdb/ChangeLog:
* findvar.c (read_frame_register_value): Read correct bytes from
register on big-endian architectures.
gdb/testsuite/ChangeLog:
* gdb.ada/small_reg_param: New testcase.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/ChangeLog.diff?cvsroot=src&r1=1.13499&r2=1.13500
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/findvar.c.diff?cvsroot=src&r1=1.138&r2=1.139
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/ChangeLog.diff?cvsroot=src&r1=1.2929&r2=1.2930
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/gdb.ada/small_reg_param.exp.diff?cvsroot=src&r1=NONE&r2=1.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/gdb.ada/small_reg_param/foo.adb.diff?cvsroot=src&r1=NONE&r2=1.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/gdb.ada/small_reg_param/pck.adb.diff?cvsroot=src&r1=NONE&r2=1.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/gdb.ada/small_reg_param/pck.ads.diff?cvsroot=src&r1=NONE&r2=1.1
More information about the Gdb-cvs
mailing list