Gdb 需要有关“的信息”;“集endian”;在solaris计算机上

Gdb 需要有关“的信息”;“集endian”;在solaris计算机上,gdb,solaris,Gdb,Solaris,在solaris机器上的gdb中,在我“设置endian little”之前和之后,任何一个1都可以告诉或显示任何程序的行为差异吗 我想知道改变它的效果 谢谢 在进行本机(而不是远程)调试时,不应该设置endianness 但是,您可以观察到这样做的不良影响: (这是在Linux/x86机器上实现的,但我希望您在Solaris/x86和Solaris/SPARC上也能获得类似的结果) 在进行本机(与远程调试相反)调试时,不应该设置endianness 但是,您可以观察到这样做的不良影响: (这是

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

我想知道改变它的效果

谢谢

在进行本机(而不是远程)调试时,不应该设置endianness

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

(这是在Linux/x86机器上实现的,但我希望您在Solaris/x86和Solaris/SPARC上也能获得类似的结果)

在进行本机(与远程调试相反)调试时,不应该设置endianness

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

(这是在Linux/x86机器上实现的,但我希望您在Solaris/x86和Solaris/SPARC上也能获得类似的结果)


要完全回答您的问题,此设置对调试程序绝对没有任何影响,仅对已使用俄语的gdb输出产生影响。

要完全回答您的问题,此设置对调试程序绝对没有任何影响,仅对已使用俄语的gdb输出产生影响

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