首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实时调试和IntelliTrace调试有什么不同?

实时调试和IntelliTrace调试有什么不同?
EN

Stack Overflow用户
提问于 2014-02-07 22:25:15
回答 2查看 1.2K关注 0票数 1

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

还有为什么我不能在编写C++代码时使用IntelliTrace?如果有一种方法可以在编写c++代码时使用它,我该如何调整它?

EN

回答 2

Stack Overflow用户

发布于 2014-02-07 22:31:45

IntelliTrace不同于实时调试。http://msdn.microsoft.com/en-us/library/dd264915.aspx

由于它使用的是.net环境,因此不是针对C++实现的。IntelliTrace仅在Visual Studio Ultimate中可用(或从VS2015开始的企业版,尽管它可能在未来的版本中发生变化),上面的链接已经解释了所有功能。

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

从上面的页面复制粘贴:

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

IntelliTrace通过记录这些时间点的特定事件和数据扩展了这种传统的调试体验。这可以让你看到你的应用程序中发生了什么,而不需要重启它,特别是当你跳过bug的地方。在传统的调试过程中,IntelliTrace默认处于打开状态,它会自动且不可见地收集数据。这使您可以轻松地在传统调试和IntelliTrace调试之间切换,以查看记录的信息。请参阅使用IntelliTrace记录代码执行以便在Visual Studio中进行调试,以及IntelliTrace收集哪些数据?

小轶事: Visual Studio团队试图将尽可能多的功能推到更低的版本中,以使更多的人能够访问它们,但在哪个版本中提供什么功能是由营销部门决定的。

票数 1
EN

Stack Overflow用户

发布于 2014-02-09 08:53:42

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

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21630192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档