Live和IntelliTrace调试之间有什么区别吗?
为什么我在编写C ++时不能使用IntelliTrace?如果在编写c ++时有办法使用它,我该如何适应它?
答案 0 :(得分:1)
IntelliTrace与实时调试不同。 http://msdn.microsoft.com/en-us/library/dd264915.aspx
它没有为C ++实现,因为它使用了.net环境。
IntelliTrace仅在Visual Studio Ultimate
(或VS2015中的Enterprise,虽然在将来的版本中可能会更改)中可用,并且上面的链接已经解释了所有功能。
实时调试和IntelliTrace之间的区别是某种“可重放性”。虽然您可以通过实时调试进行转储,但只有一个时间点,而IntelliTrace允许您收集和检查应用程序的历史记录。 必须配置IntelliTrace,以便在应用程序运行时记录其数据。
从上面的页面复制粘贴:
传统或实时调试仅显示应用的当前状态 关于过去事件的有限数据。您要么必须推断这些事件 根据应用程序的当前状态,或者您必须重新创建这些事件 通过重新运行您的应用程序。
IntelliTrace扩展了这种传统的调试体验 在这些时间点记录特定事件和数据。这让我们 你看到你的应用程序发生了什么而没有重新启动它,特别是如果 你走过错误的地方。 IntelliTrace默认情况下处于启用状态 在传统的调试过程中,自动收集数据 无形。这使您可以在传统调试之间轻松切换 和IntelliTrace调试以查看记录的信息。见记录 使用IntelliTrace进行代码执行以在Visual Studio和Visual Studio中进行调试 IntelliTrace收集哪些数据?
小轶事:Visual Studio团队试图尽可能多地将功能推向较低版本,以使更多人可以访问这些功能,但营销部门决定使用哪些功能。
答案 1 :(得分:1)
对于实时调试,目标应用程序暂停,调试器可以观察(有时修改)整个目标进程。
IntelliTrace,因为它的名字可以被理解为“智能跟踪”,某些被认为有价值的信息被记录到日志文件(.itrace文件)中。您可以在其他计算机上的稍后时间点保存并打开日志文件。记录的信息包括应用程序的进程,线程,模块,IntelliTrace事件和基于用户配置的函数调用。对于每个事件和函数调用,还会记录具有所选参数值的调用堆栈。
Visual Studio需要一些UI来查看这个日志,而调试器UI几乎拥有它。这不精确,但您通常可以将“IntelliTrace调试”理解为使用调试器UI查看跟踪日志。大多数调试器窗口(进程,线程,调用堆栈,本地,模块等)按预期工作,但它们只是显示目标应用程序历史记录中发生的事件或函数调用。用户只能观察,但不能修改目标应用程序。