c++ - 为什么 TRACE 会停止运行?

标签 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 更新......

...有没有其他人突然无法在 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/

相关文章:

c# mvc 5 添加 Controller 时出错

c# - 为什么在 C# 中启用多行的 TextBox 控件上禁用 CTRL+A 快捷方式?

delphi - TFDMoniFlatFileClientLink 不规则地不跟踪到文件

c++ - 将智能指针所有权转移到容器

c++ - 关于从类里面获取值(value)的问题

c++ - 服务器和客户端在同一台机器上,无环回

asp.net-mvc - ASP.NET MVC5/IIS Express 无法调试 - 代码未运行

.NET 跟踪 : What is the "Default" listener?

shared-libraries - 跟踪对共享库的调用

c++ - 如何使用 C++ win32 API 连接消息框文本中的值?