Я создаю внутренний инструмент разработки для управления различными процессами, обычно используемыми в нашей среде разработки. Инструмент отображает список отслеживаемых процессов с указанием их запущенного состояния и позволяет запускать или останавливать каждый процесс.
Я бы хотел добавить функцию присоединения отладчика к отслеживаемому процессу из моего инструмента вместо того, чтобы идти в Отладка -> Присоединиться к процессу в Visual Studio и найти процесс.
Моя цель - получить что-то вроде Debugger.Launch()
, которое отображало бы список доступных Visual Studio. Я не могу использовать Debugger.Launch()
, потому что он запускает отладчик в процессе, который делает вызов. Мне нужно что-то вроде Debugger.Launch(processId)
.
Как мне добиться этой функциональности?
Решением может быть реализация команды в каждом отслеживаемом процессе для вызова Debugger.Launch()
, когда команда получена от инструмента мониторинга, но я бы предпочел что-то, что не требует изменения кода отслеживаемых процессов.
Дополнительный вопрос:
При использовании Debugger.Launch()
экземпляры Visual Studio, к которым уже подключен отладчик, не отображаются. Visual Studio не ограничивается одним подключенным отладчиком, вы можете подключиться к нескольким процессам при использовании Debug → Присоединить к процессу .
Как мне обойти это ограничение при использовании Debugger.Launch()
или альтернативы?