c++ - 为什么 WinDbg 作为 C++ 应用程序崩溃的默认应用程序打开?

标签 c++ visual-studio-2010 debugging crash windbg

我已经安装了用于转储分析和内存泄漏的 WinDbg 应用程序。每当我的应用程序在 Visual Studio 中崩溃时,现在 WinDbg 都会作为默认应用程序打开。我想恢复到我的默认行为。

第二个问题更麻烦,为了测试我将 Notepad.exe 附加到 WinDbg,现在每次我启动记事本或双击文本文件时,WinDbg 都会启动,我需要从 WinDbg 中分离进程。

我不知道是我做错了什么,还是 WinDbg 的默认行为。

请建议如何解决这个问题。

问候

最佳答案

您遇到的第一个问题可能是由 WinDbg 安装程序引起的 - WinDbg 成为您的默认系统调试器。幸运的是,您可以轻松地在注册表中更改它。创建包含以下内容的 .reg 文件:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug]
"UserDebuggerHotKey"=dword:00000000
"Debugger"="\"C:\\WINDOWS\\system32\\vsjitdebugger.exe\" -p %ld -e %ld"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug]
"UserDebuggerHotKey"=dword:00000000
"Debugger"="\"C:\\WINDOWS\\system32\\vsjitdebugger.exe\" -p %ld -e %ld"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework]
"DbgManagedDebugger"="\"C:\\WINDOWS\\system32\\vsjitdebugger.exe\" PID %d APPDOM %d EXTEXT \"%s\" EVTHDL %d"
"DbgJITDebugLaunchSetting"=dword:00000010

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework]
"DbgManagedDebugger"="\"C:\\WINDOWS\\system32\\vsjitdebugger.exe\" PID %d APPDOM %d EXTEXT \"%s\" EVTHDL %d"
"DbgJITDebugLaunchSetting"=dword:00000010

并运行它 - 这应该将 Visual Studio 恢复为默认调试器。

第二个问题可能与无效的Image File Execution Options有关。打开 regedit.exe 并转到 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options 并查找 notepad.exe 子项 - 如果存在,请将其删除。还要确保它对于 x86 不存在:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Image File Execution Options

关于c++ - 为什么 WinDbg 作为 C++ 应用程序崩溃的默认应用程序打开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20417457/

相关文章:

android - 带有 ubuntu 索引器的 C/C++ IDE

visual-studio-2010 - Dreamweaver CS5 自动格式化源代码就像在 VS2010 中一样 CTRL+K、CTRL+D?

ios - 使用不同的构建配置时,Xcode 调试器值为 nil

java - UnsatisfiedLinkError 用 SWIG 包装 C++ DLL 以允许 Java 开发人员使用它

CSS:可以做 position:fixed offset center div 吗?

Xcode 的彩色控制台输出

c++ - 如果我有 X 的质因数分解,我怎样才能有效地得到一个范围内 X 的所有除数?

c++ - 为什么 gcc 不能为我的函数模板推断出正确的类型?

java - 将数据类型从 C++ 传递到 Java/Java 到 C++

c - 为什么某些格式说明符在 Visual Studio 2010 的 strftime 中不可用?