我有一个在 VS2010 中开发的 C++ 应用程序。此应用程序能够在需要时自行重新启动(某些更改需要重新启动)。现在有一些错误仅在重新启动后新实例开始时的某些情况下发生。问题是我不知道它是什么,因为新实例没有附加调试器(VS 调试模式以初始实例关闭结束)。知道如何自动将调试器附加到新实例吗?
谢谢
我有一个在 VS2010 中开发的 C++ 应用程序。此应用程序能够在需要时自行重新启动(某些更改需要重新启动)。现在有一些错误仅在重新启动后新实例开始时的某些情况下发生。问题是我不知道它是什么,因为新实例没有附加调试器(VS 调试模式以初始实例关闭结束)。知道如何自动将调试器附加到新实例吗?
谢谢
在感染了一些恶意软件后,我“发现”了这是如何完成的,这些恶意软件使用相同的技术来包装对反病毒产品的所有调用,以将它们重定向到它自己的可执行文件!
总结这里描述的步骤,它只涉及一些注册表编辑。FWIW,类似的工具DebugDiag
也用于使用此方法来捕获应用程序启动并激活调试器:
设置应用程序以自动启动调试器
启动注册表编辑器 (regedit)。
在注册表编辑器中,打开该HKEY_LOCAL_MACHINE
文件夹。
导航到HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\image file execution options
。
在Image File Execution Options文件夹中,找到要调试的应用程序的名称,例如myapp.exe。如果找不到要调试的应用程序:
一个。右键单击Image File Execution Options文件夹,然后在快捷菜单上单击New Key。
湾。右键单击新键,然后在快捷菜单上单击重命名。
C。将键名编辑为您的应用程序的名称;myapp.exe,在这个例子中。
右键单击myapp.exe文件夹,然后在快捷菜单上单击New String Value。
右键单击新字符串值,然后在快捷菜单上单击重命名。
将名称更改为debugger
.
右键单击新字符串值,然后在快捷菜单上单击修改。
出现“编辑字符串”对话框。
在数值数据框中,键入vsjitdebugger.exe。
单击确定。
从注册表菜单中,单击退出。
包含vsjitdebugger.exe的目录必须在您的系统路径中。有关完整说明,请参阅上面的链接。
现在,使用任何方法来启动您的应用程序。Visual Studio 将启动并在调试器中加载应用程序。