5

我有一个在 VS2010 中开发的 C++ 应用程序。此应用程序能够在需要时自行重新启动(某些更改需要重新启动)。现在有一些错误仅在重新启动后新实例开始时的某些情况下发生。问题是我不知道它是什么,因为新实例没有附加调试器(VS 调试模式以初始实例关闭结束)。知道如何自动将调试器附加到新实例吗?

谢谢

4

1 回答 1

6

在感染了一些恶意软件后,我“发现”了这是如何完成的,这些恶意软件使用相同的技术来包装对反病毒产品的所有调用,以将它们重定向到它自己的可执行文件!

总结这里描述的步骤,它只涉及一些注册表编辑。FWIW,类似的工具DebugDiag也用于使用此方法来捕获应用程序启动并激活调试器:

设置应用程序以自动启动调试器

  1. 启动注册表编辑器 (regedit)。

  2. 在注册表编辑器中,打开该HKEY_LOCAL_MACHINE文件夹。

  3. 导航到HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\image file execution options

  4. Image File Execution Options文件夹中,找到要调试的应用程序的名称,例如myapp.exe。如果找不到要调试的应用程序:

    一个。右键单击Image File Execution Options文件夹,然后在快捷菜单上单击New Key
    湾。右键单击新键,然后在快捷菜单上单击重命名
    C。将键名编辑为您的应用程序的名称;myapp.exe,在这个例子中。

  5. 右键单击myapp.exe文件夹,然后在快捷菜单上单击New String Value

  6. 右键单击新字符串值,然后在快捷菜单上单击重命名

  7. 将名称更改为debugger.

  8. 右键单击新字符串值,然后在快捷菜单上单击修改

    出现“编辑字符串”对话框。

  9. 数值数据框中,键入vsjitdebugger.exe

  10. 单击确定

  11. 注册表菜单中,单击退出

  12. 包含vsjitdebugger.exe的目录必须在您的系统路径中。有关完整说明,请参阅上面的链接。

现在,使用任何方法来启动您的应用程序。Visual Studio 将启动并在调试器中加载应用程序。

于 2013-04-16T06:37:01.627 回答