Hi, The attached patch attempts to do the Right Thing for internal variables when 'set endian' is used (explicitly or implicitly). I have not (and cannot) test it with all varieties of host machine and type, but I am confident that it works on x86 Linux and sparc Solaris for integer (including pointer) and float types. I have run the regression test suite on i686-pc-linux-gnu native and sh-elf cross. Demonstration: Before (gdb) set $a = 1 (gdb) set $b = (float)1.1 (gdb) set $c = (double)1.2 (gdb) set $d = (long double)1.3 (gdb) set $e = (long long)10000000 (gdb) show conv $e = 10000000 $d = 1.3000000000000000444089209850062616 $c = 1.2 $b = 1.10000002 $a = 1 $trace_frame = -1 $tpnum = 0 (gdb) show endian The target endianness is set automatically (currently little endian) (gdb) set endian big The target is assumed to be big endian (gdb) show conv $e = -9180983664580755456 $d = 1.3000000000000000444089209850062616 $c = 1.2 $b = 1.10000002 $a = 16777216 $trace_frame = -1 $tpnum = 0 (gdb) set endian little The target is assumed to be little endian (gdb) show conv $e = 10000000 $d = 1.3000000000000000444089209850062616 $c = 1.2 $b = 1.10000002 $a = 1 $trace_frame = -1 $tpnum = 0 After (gdb) set $a = 1 (gdb) set $b = (float)1.1 (gdb) set $c = (double)1.2 (gdb) set $d = (long double)1.3 (gdb) set $e = (long long)10000000 (gdb) show conv $e = 10000000 $d = 1.3000000000000000444089209850062616 $c = 1.2 $b = 1.10000002 $a = 1 $trace_frame = -1 $tpnum = 0 (gdb) show endian The target endianness is set automatically (currently little endian) (gdb) set endian big The target is assumed to be big endian (gdb) show conv $e = 10000000 $d = 1.3000000000000000444089209850062616 $c = 1.2 $b = 1.10000002 $a = 1 $trace_frame = -1 $tpnum = 0 (gdb) set endian little The target is assumed to be little endian (gdb) show conv $e = 10000000 $d = 1.3000000000000000444089209850062616 $c = 1.2 $b = 1.10000002 $a = 1 $trace_frame = -1 $tpnum = 0 Andrew Stubbs