GDB - 设置没有类型的变量

时间:2018-06-08 06:04:41

标签: c gdb

我想设置变量并比较它们(if $var1 == $var2

set $var1 = myvar.x
set $var2 = myvar.y

$var1的类型与var2的类型不同。 (我的二进制文件是用ICC编译的 - 英特尔大端编译器)

var1- (struct demo * __be)
var2 -(__be struct demo *)

现在,如果我将$var1$var2进行比较,我会得到它的不同,尽管价值是相同的。

投射也不起作用:

set $var2 = (struct demo *) (myvar.y)
(gdb) p $var2
$22 = (struct demo * __be) 0xabcdef
(the __be still exist)

如何忽略类型?

1 个答案:

答案 0 :(得分:0)

假设__be__attribute__((bigendian))的某种自定义快捷方式,并且本机架构是小端,那么var1是一个结构(包含小端值)指针指针值存储为大端,而var2是一个结构(包含大端值)指针,其指针值存储为小端。

我认为没有办法直接比较它们。您必须先将它们的值转换为相同的endianess。