无法再使用vsjitdebugger在启动时调试进程

问题描述 投票:2回答:1

当我在Windows 10之前的Windows版本中工作时,我能够在启动特定可执行文件时调用调试器。为此,我创建了以下批处理文件:

@echo off
 >%temp%\output.reg echo Windows Registry Editor Version 5.00
>>%temp%\output.reg echo+
>>%temp%\output.reg echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\regsvr32.exe]
>>%temp%\output.reg echo "debugger"="vsjitdebugger.exe"
regedit /s %temp%\output.reg
del %temp\output.reg

为了阻止它我用过:

@echo off
 >%temp%\output.reg echo Windows Registry Editor Version 5.00
>>%temp%\output.reg echo+
>>%temp%\output.reg echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\regsvr32.exe]
>>%temp%\output.reg echo "debugger"=-
regedit /s %temp%\output.reg
del %temp\output.reg

当然这些文件专门用于regsvr32.exe。我有其他可执行文件。

但是,在Windows 10下使用此技巧时,它无法正常工作。我会得到错误:

启动'regsvr32“my.dll”'时出错:

未通知Visual Studio即时调试程序应用程序正确启动。

有关详细信息,请查看“即时调试,错误”的文档索引。

我不知道它指的是什么文档索引,但我认为它是一些权限问题,所以我试图将vsjitdebugger.exe文件上的设置更改为Run this program as an administrator,我得到了一个不同的错误对话框,其中说:

C:\ WINDOWS \ SYSTEM32 \ REGSVR32.EXE

请求的操作需要提升。

现在,如果我要打开Administrator cmd窗口并使用以下命令:

vsjitdebugger.exe regsvr32  "my.dll"

这会在启动regsvr32.exe应用程序时调用调试器。但是,这个技巧的关键是确保在任何执行应用程序时调用调试器,这可能不在我控制的cmd进程下。

所以我有2个问题。

  1. 有谁知道错误消息中引用的文档索引?
  2. 如何在Windows 10版本1709(OS Build 16299.371)下使其工作?
windows debugging windows-10
1个回答
0
投票

我遇到过同样的问题。不明白为什么,但显然在Windows 10上有必要在注册表中配置一些东西,据我记得以前没有必要,或者可能在安装Visual Studio时自动发生。

在注册表路径HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug中,添加一个名为“Auto”的键,其类型为“String”,值为“1”。

编辑:这里提到“故障排除”:https://docs.microsoft.com/en-us/visualstudio/debugger/debug-using-the-just-in-time-debugger#jit_errors

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