正如 Sean Cline 在他的评论中所建议的,您可能没有将 WinDbg 设置为事后调试器。如果你有,WinDbg 会启动而不是vsjitdebugger.exe。
确保您确实从提升的命令提示符运行windbg.exe -I。您是否这样做并收到以下消息框?
编辑:请注意,在 64 位 Windows 上,针对 64 位应用程序和 WOW64(32 位)应用程序的事后调试器有单独的设置。当接收到-I 标志时,每个版本的 WinDbg 都将自己设置为为了自己的位数的事后调试器。也就是运行
C:\WINDOWS\system32>"C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\windbg.exe" -I
将 ...\x64\windbg.exe 设置为 64 位应用程序的事后调试器,但将 vsjitdebugger.exe 保留为 WOW64 应用程序的事后调试器。
您可以使用REG QUERY 命令检查当前配置。如果你运行windbg.exe -I,你的输出应该是这样的:
C:\Users\conio>reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug" /reg:64
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug
UserDebuggerHotKey REG_DWORD 0x0
Debugger REG_SZ "C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\windbg.exe" -p %ld -e %ld -g
Auto REG_SZ 1
但是如果你刚刚安装了 Visual Studio(并且没有运行windbg.exe -I),它可能会是这样的:
C:\Users\conio>reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug" /reg:32
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug
UserDebuggerHotKey REG_DWORD 0x0
Debugger REG_SZ "C:\WINDOWS\system32\vsjitdebugger.exe" -p %ld -e %ld
(/reg:64 和 /reg:32 分别需要获得“64 位注册表视图”和“32 位注册表视图”,无论您运行的是%WINDIR%\System32\REG.EXE 还是%WINDIR%\SysWOW64\REG.EXE。这个显然只适用于 64 位 Windows。)
关于你的问题:“不应该有windbg的选项吗?”
没有。看标题。它说“Visual Studio 即时调试器”。在系统上安装的不同调试器中进行选择不是通用实用程序。它只运行 Visual Studio,但可以选择是启动新实例还是使用现有实例(我认为如果您安装了多个版本,它可以让您选择 VS 版本)。