不幸的是,很难确定它何时停止工作......也许是几天前或一周前......
但我们软件的许多 TRACE
语句 - 归结为 ATL::CTraceFileAndLineInfo(__FILE__, __LINE__)
- 不再产生输出到 VS 2013 Update 4 调试器输出窗口。
我在那里得到了一些输出 - 第一次异常、线程存在、DLL 加载和卸载等,...我们的跟踪中什么也没有。
我最近更新了项目以恢复使用 v120_xp 工具集 - 但是当我仔细检查我们以前版本的软件时 - 我可以看到我们的项目完全相同(我以前的项目没有这样的问题)。
当然我做了一个清理(我有一个批处理脚本,它比 VS2013 中的清理构建目标更彻底)。
通过对 operator() 的调用进行跟踪...深入到大约十几个级别:
_CRTIMP int __cdecl _VCrtDbgReportW
(
int nRptType,
void * returnAddress,
const wchar_t * szFile,
int nLine,
const wchar_t * szModule,
const wchar_t * szFormat,
va_list arglist
);
最终终止于
OutputDebugStringW()
除此之外,我开始反汇编,我对遵循逻辑失去了兴趣。但是当我们到达 OutputDebugString() 时,我们已经完成了所有中间级别,我们实际上是在要求 Windows 输出消息……但它并没有这样做。
这也引出了一个问题:发生了什么变化?
我已经检查了几个版本的源代码控制,并与去年的代码库进行了比较,但我没有看到任何新的/相关的内容。
上周四有一个 Windows 更新......
...有没有其他人突然无法在 VS2013 调试窗口中看到他们的 TRACE 输出?以前有没有人遇到过这种情况(谁知道如何解决)?
更新时间:美国东部时间 5 月 18 日下午 5:07 “已修复”选项 - 没有帮助 清洁 - 没有帮助 重启 - 没有帮助 遍历所有调试选项(已经正确 - 并切换它们/将输出移动到即时窗口) - 没有帮助 运行其他项目 - 也没有输出
...下一步是卸载 VS2013...
10/12/2015 更新:没有任何效果。该项目的跟踪继续在其他机器上工作。我不得不从头开始重新安装 Windows,然后它又恢复了工作。
项目从未改变。但是那台电脑上的某些东西停止工作了。谁知道呢?!
最佳答案
第一个猜测:you stopped linking against a debug version of MFC . (但如果 OutputDebugStringW
被调用,那不太可能)
您可以检查 API 本身是否适用于 DbgView看看问题出在系统 API 还是 VS 中。
Visual Studio output window is not displaying messages sent by Debug.Write()提到了VS中的一些相关选项。 我还找不到任何 M$ 错误报告。
列出您获得的更新可能会提供一些关于更改内容的想法。
Resettings VS settings然后重新启动 VS(如果重置没有这样做,则在关闭 VS 后从源代码树中删除任何 .user
和 .suo
文件)如果这是一个新的-code-old-config-type 搞砸了。
关于c++ - 为什么 TRACE 会停止运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30310451/