c - 如何让GDB识别bi-endian代码?

标签 c debugging gdb endianness icc

当尝试调试使用英特尔 Bi-Endian 编译器编译的代码时,我在查看数据时遇到问题。 这似乎是我的数据被标记为大尾数法。

我尝试查看的数据是 __be_x,其中 xint

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

(gdb) p __be_x
$4 = 16777216
(gdb) x /4b
0xf850aa0 <__be_x>:    0x00    0x00    0x00    0x01

因此,解释为大端字节序的值是 1。

我认为 GDB 有某种针对此问题的补丁,但我似乎找不到它。 你知道如何让GDB识别数据吗?

最佳答案

我不知道这方面的功能 - 我认为如果您可以在同一程序中使用大端和小端类型,则需要 DWARF 扩展 - 但您可以尝试“设置端”。

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

关于c - 如何让GDB识别bi-endian代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19152836/

相关文章:

gdb - memcpy 回溯没有可用的符号

c - 不同成员的结构排序

从 C 中的 ".bin"文件创建列表

java - 与目标虚拟机断开连接

linux - 尝试设置断点时,gdb 无法访问附加进程中的内存

C++ 在监 window 口中查看互斥量值

c - 在内核空间将__be32 ip地址转换为char的方法

c++ - Hook dll中的特定函数

debugging - GDB 表达式不起作用。未找到 libcc1 镜像

c - 使用 gdb 调试链接库中的函数时遇到问题