Visual Studio - 如何将调试器附加到重新启动的应用程序?

时间:2013-04-15 15:43:25

标签: debugging winapi visual-c++ visual-studio-debugging

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

谢谢

1 个答案:

答案 0 :(得分:3)

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

总结the steps described here,它只涉及一些注册表编辑。 FWIW,DebugDiag等工具也曾使用此方法来捕获应用程序启动并激活调试器:

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

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

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

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

  4. 映像文件执行选项文件夹中,找到要调试的应用程序的名称,例如 myapp.exe 。如果找不到要调试的应用程序:

    一个。右键单击图像文件执行选项文件夹,然后在快捷菜单上单击新建密钥
    湾右键单击新密钥,然后在快捷菜单上单击重命名 C。编辑应用程序名称的密钥名称;在此示例中, myapp.exe

  5. 右键单击 myapp.exe 文件夹,然后在快捷菜单上单击新字符串值

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

  7. 将名称更改为debugger

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

    出现编辑字符串对话框。

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

  10. 点击确定

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

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

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