是否可以将 EnvDTE 用于 .vsix Visual Studio 扩展来捕获本地和调试窗口使用的调试数据?或者可以通过其他方法吗?
我想创建一个自定义的 Locals 窗口,我们可以对其进行修改以显示我们喜欢的一些更重的内容,而不会牺牲高级用户的原始 Locals 窗口。理想的解决方案是获取发送到本地窗口的数据,这样我就可以构建自己的树。
是否可以将 EnvDTE 用于 .vsix Visual Studio 扩展来捕获本地和调试窗口使用的调试数据?或者可以通过其他方法吗?
我想创建一个自定义的 Locals 窗口,我们可以对其进行修改以显示我们喜欢的一些更重的内容,而不会牺牲高级用户的原始 Locals 窗口。理想的解决方案是获取发送到本地窗口的数据,这样我就可以构建自己的树。
原来这实际上很简单!
DTE dte = (DTE).Package.GetGlobalService(typeof(DTE));
if(dte.Debugger.CurrentStackFrame != null) // Ensure that debugger is running
{
EnvDTE.Expressions locals = dte.Debugger.CurrentStackFrame.Locals;
foreach(EnvDTE.Expression local in locals)
{
EnvDTE.Expressions members = expression.DataMembers;
// Do this section recursively, looking down in each expression for
// the next set of data members. This will build the tree.
// DataMembers is never null, instead just iterating over a 0-length list.
}
}
每个表达式包含:
希望这可以帮助其他想要做类似事情的人!