为什么TRACE会停止运作?

时间:2015-05-18 18:30:58

标签: c++ visual-studio-2013 trace

不幸的是,如果确切地说这种情况在几天或一周之前停止工作很难确定...

但我们软件的许多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更新....

...还有其他人突然失去了将他们的TRACE输出看到VS2013调试窗口的能力吗?之前是否有人(谁知道如何解决)?

更新:美国东部标准时间5/18 5:07 "修复"选项 - 没有帮助 干净 - 没有帮助 重启 - 没有帮助 浏览了所有调试选项(已经正确 - 并切换它们/将输出移动到即时窗口) - 没有帮助 运行其他项目 - 也没有输出

...下载卸载VS2013 ......

2015年10月12日更新:没有任何效果。该项目的跟踪继续在其他计算机上运行。我不得不从头开始重新安装Windows,然后它恢复了工作。

项目从未改变过。但那台PC上的东西停止了工作。谁知道?!

2 个答案:

答案 0 :(得分:1)

第一个猜测: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 $ bug报告。

列出您所获得的更新可能会提供有关已发生变化的一些想法。

Resettings VS settings然后重新启动VS(如果重置没有这样做,那么在关闭VS之后从源树中删除任何.user.suo文件会有所帮助,如果这是新的-code-old-config-type搞砸了。

答案 1 :(得分:0)

2015年10月12日更新:没有任何效果。该项目的跟踪继续在其他计算机上运行。我不得不从头开始重新安装Windows,然后它恢复了工作。

项目从未改变过。但那台PC上的东西停止了工作。谁知道?!