首页 > 代码库 > 调试

调试

当你需要在程序中启动一个别的进程的时候,怎么调试新启动的这个进程?

当你写好一个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 调试。

不知道这个方法能不能帮到你?