如何将windbg设置为提升应用程序的后期调试程序?

如何将windbg设置为提升应用程序的后期调试程序?,windbg,Windbg,我已将windbg注册为后期调试(通过-I命令行开关),所有这些都可以用于非提升应用程序。但如果提升的应用程序崩溃,windbg启动并显示“无法连接到进程。访问被拒绝”错误。是否可以以某种方式配置windbg,使其可以作为提升应用程序的后期调试程序?由于您提到它是x64系统上的x86应用程序,您需要在Wow6432Node中设置以下注册表项: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Nod

我已将windbg注册为后期调试(通过
-I
命令行开关),所有这些都可以用于非提升应用程序。但如果提升的应用程序崩溃,
windbg
启动并显示“无法连接到进程。访问被拒绝”错误。是否可以以某种方式配置windbg,使其可以作为提升应用程序的后期调试程序?

由于您提到它是x64系统上的x86应用程序,您需要在Wow6432Node中设置以下注册表项:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug]
"UserDebuggerHotKey"=dword:00000000
"Debugger"="\"C:\\debuggers\\windbg.exe\" -p %ld -e %ld -g"
"Auto"="1"

请注意,这两个都是字符串值(
REG_SZ
),我假设windbg.exe安装在
C:\debugers
中。根据需要进行更改。

因为您提到它是x64系统上的x86应用程序,所以需要在Wow6432Node中设置以下注册表项:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug]
"UserDebuggerHotKey"=dword:00000000
"Debugger"="\"C:\\debuggers\\windbg.exe\" -p %ld -e %ld -g"
"Auto"="1"

请注意,这两个都是字符串值(
REG_SZ
),我假设windbg.exe安装在
C:\debugers
中。适当更改此选项。

奇怪的是,事后调试程序通常以与崩溃应用程序相同的权限运行,因此它的连接应该没有问题。您是否正在调试32位或64位应用程序,并且是否配置了正确版本的WinDbg?听起来很傻,但你已经注册了32位的32位崩溃和64位的WinDbg的64位应用程序?我已经注册了64位的WinDbg和使用32位的应用程序。这会是个问题吗?如果是这样的话,有可能同时拥有32位和64位后期调试程序吗?我想是的,并没有诚实地尝试过,但看看注册32位应用程序是否能解决您眼前的问题,很抱歉,我的时区太晚了,但这些链接可能会有所帮助:这是:尝试使用捕获拒绝访问错误的堆栈跟踪。这很奇怪,事后调试程序通常与崩溃的应用程序以相同的权限运行,因此它的连接应该没有问题。您是否正在调试32位或64位应用程序,并且是否配置了正确版本的WinDbg?听起来很傻,但你已经注册了32位的32位崩溃和64位的WinDbg的64位应用程序?我已经注册了64位的WinDbg和使用32位的应用程序。这会是个问题吗?如果是这样的话,有可能同时拥有32位和64位后期调试程序吗?我想是的,并不是真的尝试过,但看看注册32位应用程序是否能解决您眼前的问题,抱歉,我的时区已晚,但这些链接可能会有所帮助:这是:尝试使用捕获拒绝访问错误的堆栈跟踪。这与使用
-i
命令行开关的效果差不多。我使用procmon跟踪了
windbg-i
命令,它添加了
wow6432node
reg键。当我运行
windbg-I
时,它只添加了64位的regkey。我不得不在WOW6432节点中手动添加上述内容。我的vershion 6.12.0002.633 AMD64这与使用
-I
命令行开关的效果差不多。我使用procmon跟踪
windbg-I
命令,它添加了
WOW6432节点
注册表项。当我运行
windbg-I
时,它只添加了64位注册表项。我必须在WOW6432节点中手动添加上述内容。我的vershion 6.12.0002.633 AMD64