Tre*_*erg 12 c# debugging .net-4.0 visual-studio
我目前正在尝试为外部启动的进程启动调试器(而不是从visual studio中启动).我似乎无法让调试器实际启动,因为它似乎没有任何反应.在这个过程中,我添加了这段代码:
Debug.Assert(Debugger.IsAttached == false, "Should be no debugger");
if (!Debugger.IsAttached)
{
Debug.Assert(Debugger.Launch(), "Debugger not launched");
}
Debugger.Break();
Debug.Assert(Debugger.IsAttached == true, "Debugger should be attached");
Run Code Online (Sandbox Code Playgroud)
断言是为了证实我并不疯狂.首先,IsAttached属性返回false,正如我所期望的那样.然后我调用Debugger.Launch,然后返回true.根据Debugger.Launch的MSDN文档,它表示如果成功启动调试器,或者如果已连接调试器,它将仅返回true.我确认一个没有附加,所以它必须启动一个.
断点永远不会被击中,第二次验证失败(IsAttached属性返回false).我也尝试在Debugger.Launch之后暂停一下,给它一些时间,但无济于事.
有什么建议?
fre*_*per 13
我在Visual Studio 2013 Premium中遇到同样的问题.Eric回答了我如何解决它.但是您不需要更改寄存器.
就这些.!
那是一个la脚的答案,因为我在问题中找不到任何与VS Express的引用,并且在使用VS2013 Pro时遇到了相同的问题。
尽管这个文章的最高审计机关的问题在VS2013解决,即使您正在使用VS2013我一样,找临时修复标签列出。我使用它解决了这个问题。链接中的更多信息。
我将链接另一篇文章,使我朝正确的方向发展,也许它也很有用。
摘要:将Visual Studio即时调试器注册表项的AppIDFlags值从0x28更改为0x8(或根据上面的文章,将0x20更改为0x20,我想是反复试验),它们的注册表项是HKEY_CLASSES_ROOT \ AppID \ {E62A7A31-6025- 408E-87F6-81AEB0DC9347}
也许这会在将来对某人有所帮助。我遇到了同样的问题,即Debugger.Launch似乎没有执行任何操作。事实证明,其他人已登录到我的计算机中,并且调试器附加提示在其环境(而不是我的环境)中启动。我将他们踢出系统,并进行了修复。
| 归档时间: |
|
| 查看次数: |
7450 次 |
| 最近记录: |