C# 实时调试和IntelliTrace调试之间的区别是什么?

C# 实时调试和IntelliTrace调试之间的区别是什么?,c#,c++,intellitrace,C#,C++,Intellitrace,实时调试和IntelliTrace调试之间有什么区别吗 为什么我不能在编码C++时使用智能竞赛?如果在编码C++时有一种方法来使用它,我如何适应它?p> IntelliTrace与实时调试不同 因为它使用了.NET环境,所以C++没有实现。 IntelliTrace仅在Visual Studio Ultimate中可用(或从VS2015起的Enterprise中可用,尽管它可能会在未来的版本中更改),上面的链接已经解释了所有功能 实时调试和IntelliTrace之间的区别在于某种“可重放性”。

实时调试和IntelliTrace调试之间有什么区别吗


为什么我不能在编码C++时使用智能竞赛?如果在编码C++时有一种方法来使用它,我如何适应它?p> IntelliTrace与实时调试不同

因为它使用了.NET环境,所以C++没有实现。 IntelliTrace仅在

Visual Studio Ultimate
中可用(或从VS2015起的Enterprise中可用,尽管它可能会在未来的版本中更改),上面的链接已经解释了所有功能

实时调试和IntelliTrace之间的区别在于某种“可重放性”。虽然您可以通过实时调试进行转储,但只有一个时间点,而IntelliTrace允许您收集和检查应用程序的历史记录。 IntelliTrace必须配置为在应用程序运行时记录其数据

从上面的页面复制粘贴:

传统调试或实时调试仅显示应用程序的当前状态 关于过去事件的有限数据。你要么必须推断出这些事件 基于应用程序的当前状态,或者您必须重新创建这些事件 通过重新运行你的应用程序

IntelliTrace通过 在这些时间点记录特定事件和数据。这让 您可以在不重新启动应用程序的情况下查看应用程序中发生的情况,尤其是在 您跨过了bug所在的位置。默认情况下,IntelliTrace处于启用状态 在传统的调试和数据采集过程中 看不见。这使您可以轻松地在传统调试之间切换 和IntelliTrace调试以查看记录的信息。见记录 使用IntelliTrace执行代码,以便在Visual Studio和 IntelliTrace收集什么数据


小趣闻:Visual Studio团队试图将尽可能多的功能推送到较低版本中,以使更多的人可以访问这些功能,但在哪个版本中有哪些功能是由市场部决定的。

对于实时调试,目标应用程序会暂停,调试器可以观察(有时会修改)整个目标过程

IntelliTrace,顾名思义,可以理解为“智能跟踪”,某些被认为有价值的信息被记录到日志文件(.itrace文件)中。您可以稍后在另一台计算机上保存并打开日志文件。记录的信息包括应用程序的进程、线程、模块、IntelliTrace事件以及基于用户配置的函数调用。对于每个事件和函数调用,还将记录具有选定参数值的调用堆栈

VisualStudio需要一些UI来查看此日志,而调试器UI几乎囊括了这一切。这并不精确,但您通常可以将“IntelliTrace调试”理解为使用调试器UI查看跟踪日志。大多数调试器窗口(进程、线程、调用堆栈、局部变量、模块等)按预期工作,但它们所做的只是显示目标应用程序历史记录中发生的事件或函数调用。用户只能观察,不能修改目标应用程序