C 如何让GDB识别双端码?

C 如何让GDB识别双端码?,c,debugging,gdb,endianness,icc,C,Debugging,Gdb,Endianness,Icc,尝试调试使用“英特尔双端编译器”编译的代码时,查看数据时遇到问题。 这似乎是我的数据被标记为big endian 我试图查看的数据是使用\uu be\u x,其中x是一个int 当它的值为1时,尝试打印x,我得到这个值,可能是因为这个值被解释为小端而不是大端: (gdb)p\uuu be\ux $4 = 16777216 (gdb)x/4b 0xf850aa0:0x00 0x00 0x00 0x01 因此,被解释为big-endian的值是1 我认为GDB对此有一些补丁,但我似乎找不到。 你知

尝试调试使用“英特尔双端编译器”编译的代码时,查看数据时遇到问题。 这似乎是我的数据被标记为big endian

我试图查看的数据是使用
\uu be\u x
,其中
x
是一个
int

当它的值为1时,尝试打印
x
,我得到这个值,可能是因为这个值被解释为小端而不是大端:

(gdb)p\uuu be\ux
$4 = 16777216
(gdb)x/4b
0xf850aa0:0x00 0x00 0x00 0x01
因此,被解释为big-endian的值是1

我认为GDB对此有一些补丁,但我似乎找不到。
你知道如何让GDB识别数据吗?

我不知道这方面有什么功能——我认为如果你可以在同一个程序中同时使用大尾端和小尾端类型,那么它需要DWARF扩展——但是你可以尝试“set endian”


您可能还喜欢“apropos”命令,它搜索gdb的帮助文本。使用“apropos endian”可以很容易地找到上述命令。

您的帖子中没有问题。您是否希望了解16777216(0x01000000)?您是否正在寻找一个GDB补丁来提供一个可选的调试输出?