<html lang="en">
<head>
<title>Byte Order - Debugging with GDB</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="Debugging with GDB">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="Targets.html#Targets" title="Targets">
<link rel="prev" href="Target-Commands.html#Target-Commands" title="Target Commands">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
Copyright (C) 1988-2019 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with the
Invariant Sections being ``Free Software'' and ``Free Software Needs
Free Documentation'', with the Front-Cover Texts being ``A GNU Manual,''
and with the Back-Cover Texts as in (a) below.

(a) The FSF's Back-Cover Text is: ``You are free to copy and modify
this GNU Manual.  Buying copies from GNU Press supports the FSF in
developing GNU and promoting software freedom.''
-->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
  pre.display { font-family:inherit }
  pre.format  { font-family:inherit }
  pre.smalldisplay { font-family:inherit; font-size:smaller }
  pre.smallformat  { font-family:inherit; font-size:smaller }
  pre.smallexample { font-size:smaller }
  pre.smalllisp    { font-size:smaller }
  span.sc    { font-variant:small-caps }
  span.roman { font-family:serif; font-weight:normal; } 
  span.sansserif { font-family:sans-serif; font-weight:normal; } 
--></style>
</head>
<body>
<div class="node">
<a name="Byte-Order"></a>
<p>
Previous:&nbsp;<a rel="previous" accesskey="p" href="Target-Commands.html#Target-Commands">Target Commands</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Targets.html#Targets">Targets</a>
<hr>
</div>

<h3 class="section">19.3 Choosing Target Byte Order</h3>

<p><a name="index-choosing-target-byte-order-1328"></a><a name="index-target-byte-order-1329"></a>
Some types of processors, such as the <acronym>MIPS</acronym>, PowerPC, and Renesas SH,
offer the ability to run either big-endian or little-endian byte
orders.  Usually the executable or symbol will include a bit to
designate the endian-ness, and you will not need to worry about
which to use.  However, you may still find it useful to adjust
<span class="sc">gdb</span>'s idea of processor endian-ness manually.

     
<a name="index-set-endian-1330"></a>
<dl><dt><code>set endian big</code><dd>Instruct <span class="sc">gdb</span> to assume the target is big-endian.

     <br><dt><code>set endian little</code><dd>Instruct <span class="sc">gdb</span> to assume the target is little-endian.

     <br><dt><code>set endian auto</code><dd>Instruct <span class="sc">gdb</span> to use the byte order associated with the
executable.

     <br><dt><code>show endian</code><dd>Display <span class="sc">gdb</span>'s current idea of the target byte order.

   </dl>

   <p>If the <code>set endian auto</code> mode is in effect and no executable has
been selected, then the endianness used is the last one chosen either
by one of the <code>set endian big</code> and <code>set endian little</code>
commands or by inferring from the last executable used.  If no
endianness has been previously chosen, then the default for this mode
is inferred from the target <span class="sc">gdb</span> has been built for, and is
<code>little</code> if the name of the target CPU has an <code>el</code> suffix
and <code>big</code> otherwise.

   <p>Note that these commands merely adjust interpretation of symbolic
data on the host, and that they have absolutely no effect on the
target system.

   </body></html>

