当你需要在程序中启动一个别的进程的时候,怎么调试新启动的这个进程?
当你写好一个Windows Service ,部署到机器上后,启动服务时遇到启动失败,你想知道在启动服务的时候发生了什么事情,怎么调试服务呢?
之前我的做法:如果启动一个新的进程,我会在新的进程中入口处弹出一个 messagebox,然后附加到进程调试。
如果调试 Service 服务,在入口程序中使用 Sleep,然后快速附加到进程中。
后来有了 vsjitdebugger ,一切都好办了。
首先你需要确定你的机器是 32 还是 64 位机器。
然后打开注册表,HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options,找到这个注册表目录。
如果是64位机器,注册表目录为:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
添加 key,key 的名字为 exe 的名字,如:需要启动的进程为 Sample.exe,key 即为 Sample.exe
在新添加的 key 中新增 string value, Name 为:debugger. Data 为:vsjitdebugger.exe
这时候,当你启动一个进程的时候,会弹出一个提示框,问你使用新的 VS 调试?还是使用已经打开的某一个 VS 调试。
不知道这个方法能不能帮到你?
原文地址:http://www.cnblogs.com/Danielhu1983/p/3745094.html