This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
Re: gdb 6.8 selected_byte_order function
On Wed, Sep 24, 2008 at 02:36:34PM +0100, Richard Stuckey wrote:
> 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 think you can find a discussion of this on the list archives at
around the time it was made.
> 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.
That's exactly right. I believe the problem was that some simulators
do not support -E little and -E big. They were probably for targets
where switching endianness did not make sense; no need to specify it,
then.
> 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.
If it's the default you're concerned with, try searching for
WITH_DEFAULT_TARGET_BYTE_ORDER ?
--
Daniel Jacobowitz
CodeSourcery