2

У меня есть консольное приложение, которое быстро умирает, и, проверяя код, я не могу точно сказать, где он умрет (я в основном сузил его до 10 строк радиус), чтобы впоследствии отладить его.Прикрепите визуальную студию к недолговечному процессу

По причинам, в которые я не буду входить, я не могу выполнить процесс из VS (у меня есть двоичные файлы, источник и pdbs, хотя я не могу строить за пределами среды сервера сборки), и как приложить к процессу ... но когда я начинаю процесс, он умирает намного раньше, чем я мог бы надеяться обновить приложить к процессу диалог.

Идеи?

+0

Если вы запустите приложение в отладчике VS и поместите точку останова на первый (или любой последовательно) вызываемый конструктор, вы сможете пройти через нее по строкам, пока он не выйдет. –

+0

Возможный дубликат [Как установить точку останова в самом начале выполнения программы] (http://stackoverflow.com/questions/5513654/how-to-set-breakpoint-at-the-very-beginning-of-program- исполнение) –

+1

Я, вероятно, что-то пропустил, но вы должны иметь возможность использовать любой существующий проект (просто при необходимости создайте крошечный), а затем укажите приложение, которое вы отлаживаете, как «Команда» для запуска в параметрах отладчика. Тогда вы можете просто запустить его и не должны прикрепляться к нему. –

ответ

4

Одна из возможностей для этого - использовать любой существующий проект Visual Studio и указать приложение как приложение для отладки. Этапы (в Visual Studio 2010):

  • Перейдите к объектам проекта.
  • Выберите Debugging (в свойствах конфигурации)
  • Отредактируйте команду и введите путь к бинарным

Тогда это должно быть возможно только начать отладку (например, F5 или Debug \ Start Debugging).

Другой вариант, который может быть немного быстрее, если у вас установлены инструменты для отладки, будет использовать WinDbg.exe. Это позволит избежать использования проекта Visual Studio. Вы можете открыть исполняемый файл, указать параметры командной строки и т. Д., А затем ввести g<ret> в командной строке, чтобы запустить его.

+0

+1 это замечательно, вам даже не нужно запускать удаленный отладчик. –