Ter*_*ver 12 debugging visual-studio-2010 visual-studio visual-studio-debugging
答案摘要
要避免调试器捕获Ctrl + C,请先关闭Visual Studio Hosting Process(在项目属性,Debug选项卡中找到)
如果您使用的是Visual Studio的Express版本,那就是您所能做的一切.
如果您使用的是Pro或更高版本的Visual Studio,您还可以打开Debug> Exceptions ...,Win32 Exceptions,并取消选中Ctrl + C.
作为替代方案,您可以在调试时使用Ctrl + Break,除非像我这样将Ctrl + C连接到您的大脑.
原版的
以下内容已经过编辑.汉斯似乎已经收回了他的答案,但他的提问帮助我缩小了问题陈述:
额外的清晰度
请注意,以下示例是人为的.这只是为了证明这种行为.我更改了ReadKey系列,因为它让人分心.
调试(运行)以下程序:
class Program
{
static void Main()
{
System.Threading.Thread.Sleep(System.Threading.Timeout.Infinite);
}
}
Run Code Online (Sandbox Code Playgroud)
按Ctrl + C. 调试器将中断,就像在Sleep行上设置断点一样.
你怎么关掉这个?我不希望调试器完全违反Ctrl + C.
VS2008 Pro在家中不会发生这种情况.
我现在已经尝试了VS2008 Express和VS2010 Express(我可以轻松测试它的唯一版本),他们都做到了.这让我相信它是一种Express行为,或者是某个地方可以打开/关闭它.
nas*_*kew 11
也许现在这是常识,但在Visual Studio中调试时尝试使用ctrl-c停止topshelf应用程序时遇到了同样的问题.最后我们认为你需要在抛出时关闭捕获control-c win32异常(Debug-> Exceptions,或者ctrl d,打开Win32 Exceptions然后在thrown列中取消选中control-c)然后再转到项目(即运行服务)属性,并在调试选项卡上选中启用非托管代码调试选项.我们使用的是MS Visual Studio 2010专业版10.0.40219.1 SP1Rel.
我找到了答案,它是一个调试异常选项。我不知道我第一次是怎么错过的,但它是:
调试 -> 异常...Win32 异常 - Control-C
这是在 VS2008 Pro 中。
我还可以确认该选项在 Express 版本中不存在(整个 Win32 异常节点丢失)。
因此,由于我还没有 VS2010 Pro,所以我剩下的唯一问题是:Win32 异常节点和 Control-C 异常是否存在于 VS2010 Pro 版本中?