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
布尔真
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
布尔真