Here's my scenario: I have a program which produces debug output with OutputDebugString()
which maybe contains messages indicating bugs. I want to run this program inside daily build and automatically listen to debug output, parse it and report suspicious output.
There're several examples of such listener implementations, for example this one. They all do the same - listen to a system-wide event and then read data from a file mapping. The problem is this protocol allows for only one instance of the listener - whoever grabs the event first is the only one to access the output.
Same with DebugView program. If I have an instance running then starting another instance yields a "disconnected" instance and it will fail to "connect local".
The daily build runs multiple programs simultaneously and so I want to be able to run several instances of this listener and have each only listen to a specific program. Looks live Visual Studio can do that - when I start a program under Visual Studio I only see the debug output from that very program, not from others and I can also run several instances of Visual Studio and debug a program it each of them at the same time
Is it possible to run several instances of program equivalent to DebugView such that each instances only listens to a specific program being observed and instances don't interfere with each other?