From: Rahul on
Finally I found a way to do that, here are the steps

1) Copy vsjitdebugger.exe to c:\WINDOWS\system32\ on the remote
machine
2) Add following registry entry
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion
\AeDebug
Debugger (string) value = c:\WINDOWS\system32\vsjitdebugger.exe -p
%ld -e %ld

Auto (String) value = 0

Now the default crash dialog shows "Debug" button. Now attach VS
debugger to the remote app when the crash happens and after attaching
click on the Debug button on remote machine. This causes VS debugger
to catch the exception and you can see the stack.

From: Woody on
The JIT debugger trick you found is useful. I thought you had to have
VS on the remote machine to do that. BTW, the registry key is also
what you change to get a Dr Watson crash dump. And, with PE, you can
examine the stack, as long as the symbols are loaded. Select the
Threads tab and click Stack (for each thread). If you don't have the
symbols available you'll just get offsets in your executable, which
are much less useful, even with a linker map.

As far as your 2e6 LOC, you have a much better chance of finding bugs
by examining it, because there will be so many! Actually, what I meant
was, you might know where to look based on the symptoms and history.