如何停止阻塞构建服务器的“即时调试”消息

问题描述 投票:0回答:7

我们的构建服务器(TeamCity,强烈推荐),在我们完成的 C++ 程序上运行我们的一大堆测试套件。

一次测试会导致我们的程序崩溃,通常会弹出一个 VisualStudio 对话框,让我进行 JustInTime 调试崩溃。 该对话框使构建服务器停止运行。它不会将构建标记为失败,而是挂起。 我已经关闭了 VisualStudio 中的 Just In Time 调试功能,但是当它关闭时,您仍然收到一条消息“无法进行 JustinTime 调试,您可以在选项中将其打开”。

有人知道如何确保程序中任何未处理的异常不会导致任何模式对话框吗?

visual-studio teamcity
7个回答
50
投票

这篇 MSDN 文章介绍了如何在 Windows 服务器上禁用即时调试。 我已将文章的相关部分包含在下面:

在服务器上安装 Visual Studio 后,未处理的默认行为 发生异常是显示一个异常对话框,需要用户干预 启动即时调试或忽略异常。这可能是不希望的 无人值守操作。将服务器配置为在出现以下情况时不再显示对话框 发生未处理的异常(安装 Visual Studio 之前的默认行为),使用 注册表编辑器删除以下注册表项:

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\DbgManagedDebugger

在 64 位操作系统上,还删除以下注册表项:

  • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger

  • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\DbgManagedDebugger


21
投票

删除(或重命名)c:\windows\system32 sjitdebugger.exe。

我尝试删除注册表项,并尝试取消选中 Visual Studio 选项中的所有复选框,但都不起作用。

需要明确的是,我的情况不是 C++ 的。 我使用的是 Micro Focus COBOL for Visual Studio 2010,通过使用注册表和 VS 选项建议,我设法摆脱了“想要调试?”的问题。对话框,但这导致了一个不同的对话框来阻止我的自动化过程:

Visual Studio 即时调试器

CASDBC.exe [3564] 中发生未处理的异常(“COBOL 运行时:检测到故障”)。即时调试 此异常失败并出现以下错误:未安装调试器 启用了即时调试。在 Visual Studio 中,即时 可以从工具/选项/调试/即时启用调试。

检查文档索引中的“即时调试,错误” 更多信息。

好的


6
投票

我不建议编辑/删除注册表。通常注册表是一团糟。

对我有帮助的解决方案非常简单。我刚刚将 JIT 调试器添加到我的 Visual Studio 中。步骤是:

  • 打开

    Windows Control panel

  • Programs

  • Programs and Features

  • 查找

    Visual Studio 2017

  • 单击
    Change
    。在新打开的窗口中导航至
    Individual Components
    选项卡
  • 选中
    Just-In-Time debugger
    复选框
  • 点击
    modify

enter image description here

VS 重新加载后,错误应该得到修复。


3
投票

就我而言,在win2012服务器上,我尝试过:

  • 删除注册表项
  • 从 c:\windows\system32 中删除 jit 调试器的 exe

它还是出现了!

我重新启动等等。 使我的网站在 IIS 中停滞,直到对话框被确认!

最终解决方案确实有效:在控制面板中,在程序中:卸载“Microsoft Visual Studion 2010 Shell(隔离)”卸载它,问题就解决了。

(SQL Management Studio是否仍然有效......我不知道!)


2
投票

在问题窗口中

您想使用选定的调试器进行调试吗?

单击 YES(新窗口打开)> OPTIONS(顶行菜单)> DEBUG

然后在新窗口中删除显示 ENABLE JUST IN TIME DEBUGGERTICK。 禁用 JUST IN TIME 调试器后,关闭窗口或单击 OK 你的问题将会得到解决。我已经尝试过这个并摆脱了 JUST IN TIME POP UP 消息。


0
投票

这些都不适合我,但这有效:

将相关可执行文件的名称作为 DWORD 值(值为 1)添加到注册表项下方:

计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug\AutoExclusionList

(例如,右键单击,新建->DWORD值->“MyBuggyApp.exe”,并将值设置为1(0x00000001)。


-2
投票

这个问题的最佳解决方案是如此简单 只需 2 个步骤即可完成 打开cmd提示符 类型:注册表 转到路径-->HKEY_LOCAL_MACHINE-->软件-->Microsoft-->Windows NT-->CurrentVersion-->AeDebug 您现在可以找到该文件:调试器 右键,修改 复制此文本并将其粘贴到其中:

drwtsn32 -p %ld -e %ld -g

单击“确定”,瞧:)

© www.soinside.com 2019 - 2024. All rights reserved.