Вот мой сценарий: у меня есть программа, которая производит отладочный вывод с OutputDebugString()
, который может содержать сообщения, указывающие на ошибки. Я хочу запустить эту программу внутри ежедневной сборки и автоматически прослушивать вывод отладочной информации, анализировать ее и сообщать о подозрительных выводах.
Существует несколько примеров таких реализаций слушателя, например эта . Все они делают одно и то же - слушают общесистемное событие, а затем читают данные из сопоставления файлов. Проблема в том, что этот протокол допускает только один экземпляр прослушивателя - тот, кто первым получает событие, получает доступ к выходным данным.
То же самое с программой DebugView. Если у меня запущен экземпляр, то при запуске другого экземпляра получается «отключенный» экземпляр, и он не может «подключиться локально».
В ежедневной сборке одновременно запускается несколько программ, поэтому я хочу иметь возможность запускать несколько экземпляров. этого слушателя, и пусть каждый слушает только определенную программу. Похоже, Visual Studio может это сделать - когда я запускаю программу под Visual Studio, я вижу только результаты отладки из этой самой программы, а не из других, и я также могу запустить несколько экземпляров Visual Studio и отлаживать программу в каждой из них нав то же время
Можно ли запустить несколько экземпляров программы, эквивалентных DebugView, чтобы каждый экземпляр слушал только определенную наблюдаемую программу и экземпляры не мешали друг другу?