如何评估 IDebugProperty2 的引用?

How to evaluate reference of IDebugProperty2?

如何获取Microsoft.VisualStudio.Debugger.IDebugProperty2中object的地址? 前置 & (&expression) 不是解决方案,因为我会丢失 属性 的 children,但这是我想要的。

我通过 IDebugExpression2::EvaluateSync 获得 属性2 变量名作为表达式。

如果里面的变量是指针(引用类型的变量)它returns地址。

if (property2.GetMemoryContext(out var memoryContext2) != (int) HResults.S_OK || memoryContext2 == null)
  return 0;

var info = new CONTEXT_INFO[1];
memoryContext2.GetInfo(enum_CONTEXT_INFO_FIELDS.CIF_ADDRESS, info);

return long.Parse(info[0].bstrAddress.Substring(2), System.Globalization.NumberStyles.HexNumber);