C++ DbgEng-不通过回调获取命令的输出

C++ DbgEng-不通过回调获取命令的输出,c++,c,multithreading,windbg,dbgeng,C++,C,Multithreading,Windbg,Dbgeng,我使用微软的DbgEng制作了一个独立的Deubuger应用程序。 我想打开第二个线程,将命令发送到另一个IDebugControl实例,并希望获得此IDebugControl Execute方法调用的特定输出(并通过tcp连接发送) 我有一个问题,因为来自主线程的IDebugControl也向Execute()发送命令,并且输出可能是混合的。 我需要第二个线程,因为一旦它执行像“g”(go)这样的命令,它将调用WaitForEvent(),在事件发生之前,我将无法获得有关目标的任何进一步信息

我使用微软的DbgEng制作了一个独立的Deubuger应用程序。 我想打开第二个线程,将命令发送到另一个IDebugControl实例,并希望获得此IDebugControl Execute方法调用的特定输出(并通过tcp连接发送)

我有一个问题,因为来自主线程的IDebugControl也向Execute()发送命令,并且输出可能是混合的。 我需要第二个线程,因为一旦它执行像“g”(go)这样的命令,它将调用WaitForEvent(),在事件发生之前,我将无法获得有关目标的任何进一步信息

我需要一个解决方案

第二个IDebugControl用于只发送数据请求的操作,如反汇编行、内存转储。。。 我想知道是否可以创建第二个IDebugClient并将其连接到已打开的调试进程,然后问题就解决了,因为我可以对其进行其他回调


有什么解决方案吗?

我认为您不应该在引擎等待除IDebugControl::SetInterrupt之外的事件时调用任何命令来调试引擎

如果您想使用双线程,您可以注册IDebugOutputCallbacks回调接口,并使用任何类型的互斥来处理输出