C++ 为什么TRACE会停止工作?
不幸的是,很难确定这到底是什么时候停止工作的。。。几天前或者一周前 但是我们的软件的许多C++ 为什么TRACE会停止工作?,c++,visual-studio-2013,trace,C++,Visual Studio 2013,Trace,不幸的是,很难确定这到底是什么时候停止工作的。。。几天前或者一周前 但是我们的软件的许多跟踪语句——它们归结为ATL::CTraceFileAndLineInfo()不再产生VS 2013 Update 4调试器输出窗口的输出 我在那里得到了一些输出——第一次机会异常、线程存在、DLL加载和卸载等。。。从我们的痕迹中什么都没有 我最近更新了项目,恢复使用v120_xp工具集——但当我仔细检查我们以前版本的软件时,我可以看到我们的项目完全相同(我对以前的项目没有这样的问题) 当然,我做了一个清理(
跟踪
语句——它们归结为ATL::CTraceFileAndLineInfo(
)不再产生VS 2013 Update 4调试器输出窗口的输出
我在那里得到了一些输出——第一次机会异常、线程存在、DLL加载和卸载等。。。从我们的痕迹中什么都没有
我最近更新了项目,恢复使用v120_xp工具集——但当我仔细检查我们以前版本的软件时,我可以看到我们的项目完全相同(我对以前的项目没有这样的问题)
当然,我做了一个清理(我有一个比VS2013中的清理构建目标更彻底的批处理脚本)
正在跟踪对运算符()的调用。。。深入到十几个层次:
_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()
除此之外,我进入了反汇编,对遵循逻辑失去了兴趣。但当我们开始输出DebutDebugString()时,我们已经经历了所有的干预级别,我们真的要求Windows输出消息。。。但事实并非如此
这也回避了一个问题:什么改变了
我已经研究了几个版本的源代码管理,并与去年的代码库进行了比较,我没有发现任何新的/相关的内容
上周四有一个Windows更新
…是否有其他人突然失去了查看VS2013调试窗口的跟踪输出的能力?以前有没有人遇到过这种情况(谁知道如何解决)
更新:美国东部时间5月18日下午5:07 “修复”选项-没有帮助 干净-没有帮助 重新启动-没有帮助 浏览了所有的调试选项(已经正确了-并切换它们/将输出移动到即时窗口)-没有帮助 正在运行其他项目-也没有输出 。。。下一步是卸载VS2013
2015年12月10日更新:没有任何效果。该项目的跟踪继续在其他机器上工作。我不得不从头开始重新安装Windows,然后它恢复工作 这些项目从未改变。但是那台电脑上的某些东西停止了工作。谁知道 第一个猜测:。(但如果调用了
OutputDebugStringW
,则不太可能)
您可以检查API本身是否与一起工作,以查看问题是在系统API中还是在VS中
在VS中提到了一些相关选项。
我还没有找到任何M$bug报告
列出你得到的更新可能会提供一些关于变化的想法
然后重新启动VS(加上在关闭VS后从源代码树中删除任何
.user
和.suo
文件,如果重置没有这样做),如果这是一个新代码旧配置类型的错误,则会有所帮助。10/12/2015更新:没有任何工作。该项目的跟踪继续在其他机器上工作。我不得不从头开始重新安装Windows,然后它恢复工作
这些项目从未改变。但是那台电脑上的某些东西停止了工作。谁知道 这是版本控制系统非常方便的时候!然后你可以回去看看它最后一次工作是什么时候,你改变了什么使它停止工作……它到处都坏了吗?VS最近升级了吗?原始/重建的旧版本软件是否有效?Visual Studiio-工具、选项、调试、输出窗口-检查是否有Visual Studio将调试输出路由到输出窗口。在started Out of debugger(Visual Studio或其他)中,您可以检查生成的输出是否由DebugView捕获(这将证明应用程序是好的,而Visual Studio设置不是)。MatsPetersson我们确实使用了Vault-我对一些签入进行了详细比较,以查看是否有任何事情似乎是由它引起的:不。ivan_pozdeev我不确定VS2013中的任何组件是否从上周四更新。罗曼。“所有调试输出”处于打开状态,异常消息处于打开状态,等等。刚刚返回到去年的代码库-编译并运行-无调试输出(在VS2013中捕获)。因此,我的系统/VS2013上的某些东西,而不是代码库中的东西应该受到责备……也许这与跟踪级别有关,从VS2013开始,您需要从应用程序内部设置它:Huh-dbgview是静默的。空的窗户就在那里。。。我假设正常情况下,各种调试输出都应该显示在那里。。。好的-一旦我从进程中分离VS2013,我就会看到调试输出。所以我们还在输出。。。但是VS2013已经无法处理输出(或者其中有一个设置被破坏了)好吧,所以,它在猜测VS内部发生了什么。是的,一定是这样。我没有更改VS2013中的任何设置-绝对没有-因此它停止了自己的工作-无论是从系统更新,还是从内部组件配置错误,或类似的。如果只是戳它不起作用,我可能不得不重新安装。