这里是我的场景:我有一个程序,它使用
有几个这样的监听器实现示例,例如这个。它们都做同样的事情——监听系统范围内的事件,然后从文件映射中读取数据。问题是,该协议仅允许一个监听器实例 - 谁先获取到事件就是唯一可以访问输出的人。
DebugView程序也是如此。如果我有一个正在运行的实例,那么启动另一个实例将产生一个“断开连接”的实例,它将无法“连接到本地”。
日常构建同时运行多个程序,因此我希望能够运行多个此监听器实例,并且每个实例仅侦听特定程序。看起来Visual Studio可以做到这一点——当我在Visual Studio下启动一个程序时,我只会看到该程序的调试输出,而不是其他程序的输出。我还可以运行多个Visual Studio实例,并在同一时间内调试每个程序。
是否可能运行与DebugView相当的几个程序实例,以便每个实例仅侦听特定的被观察程序,并且实例之间不会相互干扰?
OutputDebugString()
产生调试输出,其中可能包含指示错误的消息。我想在日常构建中运行此程序,并自动侦听调试输出、解析它并报告可疑输出。有几个这样的监听器实现示例,例如这个。它们都做同样的事情——监听系统范围内的事件,然后从文件映射中读取数据。问题是,该协议仅允许一个监听器实例 - 谁先获取到事件就是唯一可以访问输出的人。
DebugView程序也是如此。如果我有一个正在运行的实例,那么启动另一个实例将产生一个“断开连接”的实例,它将无法“连接到本地”。
日常构建同时运行多个程序,因此我希望能够运行多个此监听器实例,并且每个实例仅侦听特定程序。看起来Visual Studio可以做到这一点——当我在Visual Studio下启动一个程序时,我只会看到该程序的调试输出,而不是其他程序的输出。我还可以运行多个Visual Studio实例,并在同一时间内调试每个程序。
是否可能运行与DebugView相当的几个程序实例,以便每个实例仅侦听特定的被观察程序,并且实例之间不会相互干扰?
DBG_PRINTEXCEPTION_C
和DBG_PRINTEXCEPTION_WIDE_C
异常接收通知。能否运行多个实例?- 不可能的,只存在一个部分、事件等,所以会出现数据竞争。 - undefined