1.exe没有给我足够的时间来启动IDE并将1.exe附加到调试器以进入。
答案 0 :(得分:6)
在这种情况下,我建议采用与NT服务相同的方法。它们也将启动,通常不会给你足够的时间来为启动例程附加调试器。
此处描述了详细信息:http://www.debuginfo.com/articles/debugstartup.html
简而言之,您为第二个exe添加了一个注册表项:
HKLM \ SOFTWARE \微软\的Windows NT \ CurrentVersion \图像文件执行 Options \ 2.exe Debugger = “C:\ progs的\ MSVS \ common7 \ IDE \ devenv.exe的 / debugexe“(REG_SZ)
更改c:\ progrs \ msms \以匹配您的设置。
希望有所帮助。
答案 1 :(得分:0)
我假设您拥有1.exe的源代码(如果您正在调试它),那么只需在开头附近插入一条语句,这将使其挂起足够长的时间来附加调试器。 (getch(),如果你是绝望的,而且它不是互动的。)
在附加之后,只需跳到下一个语句就可以了。
答案 2 :(得分:0)
您可以为调试版本添加一些预处理器命令 - 只需记住在发布模式下构建版本:
#ifdef DEBUG
Thread.Sleep(10000);
#endif
答案 3 :(得分:0)
如何启动1.exe?如果可以使用CreateProcess()启动它,则可以在挂起状态下启动进程,附加调试器,然后释放新进程。
答案 4 :(得分:0)
如果您愿意考虑除Visual Studio之外的调试器,WinDBG可以自动调试子进程(仅限本机代码)。
答案 5 :(得分:0)
您没有提到您正在使用的语言。但是如果你使用C#或VB.NET,你可以添加Debug.Break()或Stop来触发将调试器附加到进程的提示。
或者如上所述,只需使用Console.Readline()或MessageBox.Show()之类的东西来暂停启动过程,直到你可以将调试器附加到它。