gpt4 book ai didi

c# - 在 EnvDTE 中调试时捕获 VS 局部变量

转载 作者:行者123 更新时间:2023-11-30 19:18:02 28 4
gpt4 key购买 nike

是否可以使用 .vsix visual studio 扩展的 EnvDTE 捕获本地和调试窗口使用的调试数据?还是可以通过其他方法?

我想创建一个自定义 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.
}
}

每个表达式包含:

  • 姓名(字符串)
  • Value(本地窗口中显示的字符串值)
  • 类型(类型的字符串名称)
  • Parent(类型为父类型)
  • DataMembers(其子项的可迭代集合(永不为空))
  • 有效( bool 值)

希望这可以帮助任何其他想要做类似事情的人!

关于c# - 在 EnvDTE 中调试时捕获 VS 局部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14467241/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com