Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何调试DebuggerTypeProxy代理?_C#_.net_Debugging - Fatal编程技术网

C# 如何调试DebuggerTypeProxy代理?

C# 如何调试DebuggerTypeProxy代理?,c#,.net,debugging,C#,.net,Debugging,我已经开发了几个代理,我使用类型声明中的DebuggerTypeProxyAttribute在它们的嵌套类型上指定这些代理。但是,当这些代理中有bug时,就很难进行调试。我还没有找到使用调试器(嵌套调试会话)单步执行代理的方法 有没有关于如何执行此操作的指针?尝试手动创建类型代理的实例并评估其属性。如果在Visual Studio中调试时在即时窗口中执行此操作,则类型代理中的断点将正常工作。在此过程中,只需确保从您的类型中删除[DebuggerTypeProxy]属性,这样您就可以完全控制创建这

我已经开发了几个代理,我使用类型声明中的
DebuggerTypeProxyAttribute
在它们的嵌套类型上指定这些代理。但是,当这些代理中有bug时,就很难进行调试。我还没有找到使用调试器(嵌套调试会话)单步执行代理的方法


有没有关于如何执行此操作的指针?

尝试手动创建类型代理的实例并评估其属性。如果在Visual Studio中调试时在即时窗口中执行此操作,则类型代理中的断点将正常工作。在此过程中,只需确保从您的类型中删除
[DebuggerTypeProxy]
属性,这样您就可以完全控制创建这些实例的时间。

尝试手动创建类型代理的实例并评估其属性。如果在Visual Studio中调试时在即时窗口中执行此操作,则类型代理中的断点将正常工作。在此过程中,只需确保从类型中删除
[DebuggerTypeProxy]
属性,这样您就可以完全控制创建这些实例的时间。

受Sam响应的启发,我在VS2013中只使用了一个调试器:

1) 将调试器附加到具有要通过调试器类型代理检查的类型的进程,以及

2) 在即时窗口中实例化调试器类型代理:

新建YourDebuggerTypeProxy(正在调试的内容)


调试器应在调试器类型代理中中断。这似乎是因为VS将通过即时窗口生成的代码直接注入到附加的进程中

受Sam反应的启发,我在VS2013中只用一个调试器就可以做到这一点:

1) 将调试器附加到具有要通过调试器类型代理检查的类型的进程,以及

2) 在即时窗口中实例化调试器类型代理:

新建YourDebuggerTypeProxy(正在调试的内容)


调试器应在调试器类型代理中中断。这似乎是因为VS将通过即时窗口生成的代码直接注入到附加的进程中

很好的提示,虽然在我的例子中,失败似乎只发生在调试器视图是实例化代理的视图时。例如,它非常特别,需要任何线程开关或锁获取。在我现在面临的情况下,调试器似乎完全忽略了代理。因此,虽然如果我自己执行它,它可以完美地工作,但我需要知道调试器为什么会忽略它。这是一个很好的提示,尽管在我的例子中,失败似乎只发生在调试器视图是实例化代理的视图时。例如,它非常特别,需要任何线程开关或锁获取。在我现在面临的情况下,调试器似乎完全忽略了代理。因此,虽然我自己执行它可以完美地工作,但我需要知道调试器为什么会忽略它。顺便说一句,在过去的某个时候,我非常确定我能够在devenv.exe调试程序时将调试器附加到devenv.exe(是的,两个IDE同时打开),从而在类型代理上设置断点以查看发生了什么。但最近这似乎不起作用。我一直在调试t4模板。我很惊讶它不适用于调试器类型代理。顺便说一句,在过去的某个时候,我非常确定我能够在devenv.exe调试应用程序时将调试器附加到devenv.exe(是的,两个IDE同时打开),从而在类型代理上设置断点以查看发生了什么。但最近这似乎不起作用。我一直在调试t4模板。我很惊讶它不适用于调试器类型的代理。