【问题标题】:Why is my windbg not in debugger list?为什么我的 windbg 不在调试器列表中?
【发布时间】:2016-02-11 00:27:03
【问题描述】:

我已将我的 windbg 安装为具有管理员权限的命令提示符中的默认调试器。

然后我写了一个程序,写入空指针,导致崩溃。

崩溃后,会弹出一个窗口并显示“调试”或“程序关闭”选项。

所以我选择了“debug”,得到了和我上传的图片一样的窗口。

问。不应该有windbg可供选择吗? 问:一定有一些我错过的东西。您能建议我使用 windbg 进行故障排除吗?

【问题讨论】:

标签: windows windbg


【解决方案1】:

正如 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 版本)。

【讨论】:

  • 您需要证明 64 位和 32 位注册表项很重要。 Wow6432Node 中的 32 位密钥最有可能是相关的。最好用Regedit.exe,reg命令用处不大。
  • 您对 64 位和 WOW64 应用程序的单独调试器问题是正确的,但是 REG 命令支持针对注册表的“32 位视图”(即KEY_WOW64_32KEY)和我不建议使用REG 命令设置AeDebug 值,而只是查看它。使用windbg.exe -I 设置设置右键。但我会添加信息,虽然你可以做到。这是一个很好的观点和很好的编辑。我会批准的。 :)
猜你喜欢
  • 2010-09-11
  • 1970-01-01
  • 2018-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多