我使用Visual Studio 2010在C ++中完成了一个应用程序,并且它使用OutputDebugStringW(每秒大约50个,这显然很多)发出了很多调试信息。
如果我打开关闭DebugView 3 ou 4次然后我的应用程序变得不稳定并且崩溃或行为不正常。我尝试了同样的另一个应用程序激发相同数量的调试打印(也在使用VS 2010完成的C ++)并且我遇到了相同的行为,如果我尝试另一台计算机也是如此。两台计算机都运行Windows 7 32位。
这些打印的长度控制在不超过512个字符,所以我认为没有缓冲区溢出(OutputDebugStringW似乎限制为4kb字符串)。
我尝试过使用Hoo Win Tail(这是一个类似于DebugView的软件),但问题不会发生。
有没有人遇到过这个问题?
致以最诚挚的问候,
喷气
答案 0 :(得分:1)
我认为你的应用程序中有一个(微妙的)竞争条件,只有当你的程序以不同的“速度”运行时才会暴露自己。
DebugView will make your app run slower等介绍了不同的时间。其他工具,也捕获调试输出,在您的应用程序中不会出现这种行为,可能与它们引入某种不同(更快/更慢)时序的事实有关。
答案 1 :(得分:0)
您可以尝试DebugView ++(https://github.com/djeedjay/DebugViewPP/),它会在跟踪应用程序中引入几乎没有延迟。