我开发了几个代理,我使用DebuggerTypeProxyAttribute
类型声明在它们的嵌套类型上指定。但是当这些代理中有错误时,很难调试。我还没有找到使用调试器(嵌套调试会话)单步执行代理的方法。
有关如何执行此操作的任何指示?
尝试手动创建类型代理的实例并评估其属性。如果在 Visual Studio 中调试时在即时窗口中执行此操作,则类型代理中的断点将起作用。只需确保[DebuggerTypeProxy]
在此过程中从您的类型中删除该属性,以便您可以完全控制这些实例的创建时间。
受到 Sam 的回应的启发,我在 VS2013 中只用一个调试器就能做到这一点:
1) 将调试器附加到具有您希望通过调试器类型代理检查的类型的进程,并且
2)在即时窗口中实例化调试器类型代理:
new YourDebuggerTypeProxy(thingBeingDebugged)
您的调试器应该在调试器类型代理中中断。这似乎是因为 VS 将通过即时窗口生成的代码直接注入到附加的进程中。