我想设置变量并比较它们(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)
如何忽略类型?
答案 0 :(得分:0)
假设__be
是__attribute__((bigendian))
的某种自定义快捷方式,并且本机架构是小端,那么var1
是一个结构(包含小端值)指针指针值存储为大端,而var2
是一个结构(包含大端值)指针,其指针值存储为小端。
我认为没有办法直接比较它们。您必须先将它们的值转换为相同的endianess。