0

我有一个使用 Visual Studio 2010 在 C++ 中完成的应用程序,它使用 OutputDebugStringW 触发了很多调试信息(每秒大约 50 个,这显然很多)。

如果我打开关闭 DebugView 3 或 4 次,那么我的应用程序会变得不稳定并且崩溃或行为不正常。我已经尝试过使用另一个应用程序触发相同数量的调试打印(也在使用 VS 2010 完成的 C++ 中)并且我遇到了相同的行为,如果我在另一台计算机上尝试同样的事情。两台计算机都运行 Windows 7 32 位。

这些打印的长度被控制为不超过 512 个字符,所以我认为没有缓冲区溢出(OutputDebugStringW 似乎限制为 4kb 字符串)。

我试过用 Hoo Win Tail(这是一个类似于 DebugView 的软件),问题没有出现。

有人已经遇到过这个问题吗?

此致,

喷射

4

2 回答 2

1

我假设您的应用程序中有一个(微妙的)竞争条件,只有当您的程序以不同的“速度”运行时才会暴露自己。

DebugView将使您的应用程序运行速度变慢,因此会引入不同的时间。其他也捕获调试输出的工具在您的应用程序中没有表现出这种行为,这可能与它们引入了某种不同(更快/更慢)的时序有关。

于 2012-08-29T10:06:04.383 回答
0

您可以尝试 DebugView++ ( https://github.com/djeedjay/DebugViewPP/ ),它几乎不会延迟跟踪的应用程序。

于 2014-07-01T22:54:12.633 回答