【发布时间】:2011-09-16 23:12:45
【问题描述】:
我正在尝试编写一个 Visual Studio 包,以在调试期间显示实时对象图。
有没有办法从 VS 2010 包中访问托管调试器的数据?我知道 EnvDTE.Debugger API,但这并没有为我的用例提供足够的数据。
我知道使用 WinDbg/SOS 是可能的,但这对我来说不是一个选项,因为我希望能够很好地集成使用它。
非常感谢任何信息!
编辑:
我的要求基本上是:
- 当调试器处于中断模式时,获取当前堆栈帧的所有对象。
- 获取给定对象(即其字段)引用的所有对象。
- 唯一标识一个对象,以便当多个对象引用同一个对象时,有一种方法可以检测到它只是被引用的一个对象。
- 在附加 VS 调试器时执行所有这些操作,这会有效地杀死使用另一个调试器...
到目前为止我发现了什么:
- EnvDTE.Debugger 不满足要求 2 和 3
- 调试器可视化工具不起作用,因为它只对可序列化的对象起作用
- WinDbg 不起作用,因为它需要以独占方式附加到进程。
【问题讨论】:
-
我很抱歉。我误读了它,因为您出于某种原因想附加调试器。多哈'。删除了我不相关的答案。
-
“但这并没有为我的用例提供足够的数据” - 你能详细说明一下吗?
-
你看过这个关于调试器可视化器的帖子吗:stackoverflow.com/questions/2959048/…?
标签: .net visual-studio-2010 debugging visual-studio-debugging vs-extensibility