This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
Re: gdb 6.8 selected_byte_order function
- From: Richard Stuckey <richard dot stuckey at arc dot com>
- To: gdb at sourceware dot org
- Date: Wed, 24 Sep 2008 14:36:34 +0100
- Subject: Re: gdb 6.8 selected_byte_order function
- References: <1222253904.3506.12.camel@sad-richards.arc.com>
Ah, I see. So this function is actually returning the byte order, if
any, selected by the user (hence its name!).
I think that the question I should have asked is why, in function
gdbsim_open in file remote-sim.c, the switch statement has been changed
to call selected_byte_order instead of using TARGET_BYTE_ORDER (which is
#defined to be gdbarch_byte_order (current_gdbarch)) as it did in the
6.6 code?
I suppose this change was because in the 6.6 code there was the comment
/* Specify the byte order for the target when it is both selectable
and explicitly specified by the user (not auto detected). */
and the code was not actually doing this: calling gdbarch_byte_order was
using auto-detection in the case that the user had not specified the
byte order.
This change caused a difference in the behaviour of the ARC debugger
when using the built-in simulator: the 6.6. version used a default of
little-endian, whereas in the 6.8 version it is now necessary to issue a
"set endian little" command before the "target sim" command, otherwise a
"Target byte order unspecified" error is given. Alternatively, using
the "file <program>" command before the "target sim" command, instead of
after it, has the desired effect.
Thanks for clearing this up for me.
Richard Stuckey, ARC