【问题标题】:Open source alternative for "Intellitrace" [closed]“Intellitrace”的开源替代品[关闭]
【发布时间】:2010-04-11 17:39:32
【问题描述】:

Microsoft 最近宣布了“Intellitrace”,这是 VS2010 恕我直言的杀手级功能。

基本上它记录了程序运行的一些指令(特别是函数调用),并允许您轻松查看执行日志。

开源工具有类似的功能吗?特别是这样的 Java 特性与 Eclipse 集成将是一件好事。

【问题讨论】:

  • Intellitrace 是否适用于多线程应用程序?允许及时来回重播每条指令,包括跨多个线程?如果可以的话,这确实是一件大事。如果不能,它只是另一个时间旅行调试器。
  • 尚未对其进行测试,但msdn.microsoft.com/en-us/magazine/ee336126.aspx 说:“摘要页面为我提供了有关 IntelliTrace 文件包含内容的大量信息。在页面顶部,我得到了一个应用程序中线程的时间线视图。”。我告诉你,MS 将通过其产品的剪切质量重新获得垄断地位。开发人员将从 Java 涌向 C#,这自然会将客户吸引到 WinMo7,将服务器吸引到 IIS 等。
  • @WizardOfOdds 顺便说一句,是否有成熟的 Java 时间旅行调试器框架?
  • IntelliTrace 确实适用于多线程应用程序。 IntelliTrace 不会记录程序运行的所有指令。有关记录内容的更多信息,请查看:blogs.msdn.com/ianhu/archive/2010/03/16/…
  • 我同意这将是一个杀手级功能,如果人们负担得起的话。在 Ultimate 中,它的价格可能会超出更多开发者工具包

标签: java visual-studio open-source intellitrace


【解决方案1】:

我当然有偏见,但你可能想看看Chronon

【讨论】:

【解决方案2】:

gdb 7.0 具有一个名为 ProcessRecordsimilar feature。但它缺少gui

它允许这样的事情:

Program received signal SIGSEGV, Segmentation fault.
0x00401150 in main () at try.c:3
3       printf("%d\n",*x);
(gdb) p x
$1 = 0x0
(gdb) watch x
Watchpoint 1: x
(gdb) reverse-continue
#...find out who was the last one to touch x

【讨论】:

    【解决方案3】:

    这有时被称为“时间旅行调试”,因为它使您能够“及时退回”并检查程序的状态。一个快速的谷歌搜索出现了 this talk 关于 eclipse 对类似东西的支持(显然是从 2006 年开始!)。

    编辑:

    正如 Elazar 在 cmets 中指出的那样,eclipse 工具用于基于 C 的开发,而不是 java。但是,看起来Omniscient Debugger 是 Java 的临时调试器。不过,这似乎有点像一个死项目,这有点令人惊讶。

    【讨论】:

    • 不幸的是,它只是用于 CDT,这意味着不支持 Java。是基于我提到的gdb Record 功能吗?
    • eclipsecon.org 链接已损坏。
    • 不幸的是,我在 Java 6 上是 unable to get Omniscient Debugger to work at all
    • 这不是关于“时间旅行”——它是关于调试其他人提交错误时在他们的机器上发生的事情——你的 QA 可以将一个 .ITrace 文件附加到他们提交的错误中,你可以单步执行代码,看看到底发生了什么。
    【解决方案4】:

    您始终可以使用 AOP 框架(例如 AspectJ)自己破解它 - 日志记录是最常提及的方面之一。

    【讨论】:

    • 向现有代码库添加类似功能有多容易?
    • 这应该很容易,但请参考 AspectJ 手册。
    猜你喜欢
    • 1970-01-01
    • 2013-08-18
    • 2011-01-26
    • 1970-01-01
    • 1970-01-01
    • 2012-03-22
    • 2013-06-21
    • 1970-01-01
    • 2017-08-08
    相关资源
    最近更新 更多