有没有办法在暂停状态下启动进程?

oku*_*ane 8 windows debugging windows-xp

我想在暂停状态下启动进程.有没有办法只使用Windows XP附带的标准工具?有没有轻量级的第三方工具?

问题我正在尝试解决:
我有一个应用程序,我想通过使用Visual Studio 2005调试它.我有必要的*.pdb文件的调试版本,我有从这些*.pdb文件引用的所有源.我不想创建一个空的解决方案,它将为我运行该应用程序,所以我试图在从其他地方启动后附加到此过程.我想调试的代码的一部分是在进程启动开始时执行的,所以我想在挂起模式下运行它,附加调试器然后恢复它.

Mic*_*urr 9

我不确定你要从你的问题做什么,但也许使用XP附带的ntsd调试器将帮助你做你想要的(默认情况下,ntsd将加载进程并停在第一条指令) .


根据您提问中的更新信息,我建议从Microsoft 下载Debugging Tools for Windows软件包并调试WinDbg中的启动内容 - 这是Visual Studio更擅长的一些内容,但也有一些WinDbg更好的东西比Visual Studio(WinDBg是一个非常强大的调试器).

或者您只需从命令行在Visual Studio调试器中加载程序(无需解决方案):

devenv /debugexe yourprog.exe <arguments>
Run Code Online (Sandbox Code Playgroud)


sha*_*oth 8

您可以轻松编写一个可以为您完成的应用程序.使用CreateProcess()函数,在dwCreationFlags参数中设置CREATE_SUSPENDED标志.

对于您的特定任务,应用程序可以执行以下操作:调用CreateProcess()以启动应用程序并检查错误代码,然后调用MessageBox()告诉您附加调试器,然后在按下消息框上的按钮后(MessageBox()返回)调用ResumeThread()来恢复应用程序.


Hai*_*Dog 6

一段时间以来,我一直在问自己同样的问题,现在才发现这个非常简洁的小工具可以完全满足您(和我)想要的要求。您可以只获取二进制文件,也可以获取源代码。

http://www.codeproject.com/Articles/230005/Launch-a-process-suspended