需要有关solaris机器上“set endian”的信息

时间:2010-05-17 11:14:21

标签: gdb solaris

任何1可以告诉或显示在solaris机器上的gdb中设置endian little之前和之后任何程序行为的差异吗?

我想知道改变它的效果。

谢谢!

2 个答案:

答案 0 :(得分:4)

在执行本机(而不是远程)调试时,从不必须设置字节顺序。

然而,您可以观察到这样做的不良影响:

(这是在Linux / x86机器上,但我希望你在Solaris / x86和Solaris / SPARC上得到类似的结果)。

int main()
{
  int x = 0x1020304;
  return x;
}


gdb -q a.out
Reading symbols from /tmp/a.out...done.
(gdb) b 4
Breakpoint 1 at 0x804835c: file t.c, line 4.
(gdb) r

Breakpoint 1, main () at t.c:4
4     return x;
(gdb) show endian
The target endianness is set automatically (currently little endian)
(gdb) p &x
$1 = (int *) 0xffffce60
(gdb) p/x *(int*)0xffffce60
$2 = 0x1020304
(gdb) set endian big
The target is assumed to be big endian
(gdb) p/x *(int*)0xffffce60
$3 = 0x4030201

答案 1 :(得分:2)

要完全回答您的问题,此设置对调试的程序完全没有任何影响,仅在gdb输出上,就像雇佣俄语已经说明的那样。