Как запустить процесс, а затем немедленно приостановить его? - PullRequest
5 голосов
/ 18 декабря 2009

Я хотел бы знать, есть ли какая-либо команда или инструмент, который можно использовать для запуска процесса, а затем немедленно приостановить его.

Мне нужна эта функция, чтобы у меня было время подключить к ней отладчик. Я попробовал функцию Visual Studio / Debugexe, но поведение программы, казалось, изменилось. Поэтому мне нужно найти другой способ присоединить его и отладить.

Спасибо.

Ответы [ 4 ]

5 голосов
/ 18 декабря 2009

Вы можете использовать CreateProcess () с флагом CREATE_SUSPENDED. Это запустит процесс с приостановленным основным потоком. Затем вы вызываете ResumeThread () после присоединения.

2 голосов
/ 15 февраля 2019

В вашей основной программе вставьте строку:

    System.Diagnostics.Debugger.Launch();

Компиляция в режиме отладки. Запустите вашу программу, и она сломается и предложит вам присоединить отладчик. Если у вас есть открытая студия, она спросит, хотите ли вы использовать ее для отладки.

0 голосов
/ 18 декабря 2009

Вы также можете добавить звонок на

System.Diagnostics.Debugger.Break();

в коде. Программа приостановит работу программы, а затем попросит вас выбрать отладчик, который вы хотите использовать. Затем вы можете подключиться к работающему экземпляру Visual Studio. Если вы уже используете отладчик, он просто сломается, как если бы он достиг точки останова.

0 голосов
/ 18 декабря 2009

Как насчет добавления вызова Sleep () в качестве самого первого оператора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...