Если вы не возражаете против перекомпиляции приложения каждый раз, когда вам нужно отладить, вы можете вызвать временный вызов System.Diagnostics.Debugger.Break () при запуске. Это вызовет диалоговое окно отладки точно в срок и позволит вам присоединиться в момент, когда вызывается Debugger.Break ().
Вы также можете включить отладку JIT для исполняемого файла с заданным именем, используя инструмент "Global Flags" / gflags. С этой опцией нет необходимости изменять исходный код или перекомпилировать.
Загрузите средства отладки для Windows здесь:
http://www.microsoft.com/whdc/Devtools/Debugging/default.mspx
Запустите gflags.exe в C: \ Program Files \ Средства отладки для Windows \ gflags.exe
Выберите вкладку файла изображения
Введите имя вашего exe, например, myapplication.exe вверху и нажмите вкладку
Выберите отладчик в нижней части и введите vsjitdebugger.exe
Пока этот флаг установлен, вам будет предложено отлаживать приложение при каждом его запуске.
Еще один вариант - добавить переключатель командной строки в ваше приложение и командный файл (например, / break) и вызывать Debugger.Break () только при его передаче. Это избавляет от необходимости перекомпилировать, когда вы решаете отлаживать, а также избавляет от необходимости каждый раз проверять опцию отладчика в gflags.
Очевидные преимущества этих подходов в том, что они устраняют любые расы между тем, когда приложение запускается и когда вы можете присоединиться.