Enable Remote Debugging to immediately attach to a starting process
The Global Flags Editor (gflags.exe) allows a debugger to be configured so that when a process is started, the debugger can attach immediately and break before the process' entry point. This already works with Visual Studio (devenv) and WinDbg.
It would be great if the Remote Debugger (msvsmon.exe) could be configured as the debugger for a process in the same way as VS and WinDbg.
I would expect the workflow to be something like:
1. configure msvsmon as the debugger for a process (eg notepad) on a remote machine
2. Attempt to start notepad.exe on the remote machine and find that the Remote Debugger starts first, begins listening on the configured port, and starts notepad.exe paused before its entry point
3. Open Visual Studio on my local machine and choose Attach to Process.
4. Specify the remote machine name and then choose the paused notepad.exe process from the list (perhaps highlighted differently from running processes).
5. Find myself attached to the process but waiting for me to configure breakpoints, step into, or just continue the process from before the entry point.
This would enable a better remote debugging experience for interactive applications, windows services, and web applications that are misbehaving during their early startup before a user can reasonably attach the debugger manually.
DO IT. Save us from the remote debugging misery and implement this.
Paul Tobey commented
Agree with this 100%. How many times have you had an installer extension or a shell extension that crashes on load? What do you do with that if it happens only on a user PC and not a development PC? DebugBreak? That's a code change. Are you sure it's not affecting the problem?