Windbg 将指针视为有符号整数

Windbg treating pointers as signed integers

struct Node
{
struct NodeY NY;
int data;
};

当我这样做时,对于该结构的实例指针'N'

2: kd> ?poi(poi(N))
Evaluate expression: -70368698399456 = ffffc000`02ba8520

基本上我想用这样的东西

bp igdkmd64!KmRender+0x199 ".if (@@(N) > 0x1){}.else {gc}"

因此,大多数情况下它是正确的,但由于 windbg 将其视为有符号整数,上述条件断点始终为假,因为 @@(N) 始终计算为负数。

如何比较2个内存地址的数量?

kd> ?? (int64)@@(ffffc00002ba8520) > 1
bool false
kd> ?? (unsigned int64)@@(ffffc00002ba8520) > 1
布尔真