如果您不幸遇到过 JMP 崩溃,您可能已经看到过要求您向 JMP 发送崩溃文件的提示。(附注:如果您想与 JMP 技术支持合作,请将您的崩溃文件发送给我们并提供您的电子邮件地址。)如果您发送了文件,这些文件将与来自全球内部测试人员和客户的文件合并,并导入到 JMP 崩溃系统中。JMP DevOps 团队使用我们自己的 JMP 软件来分析您报告的 JMP 崩溃文件,然后与 JMP 开发团队合作,确定崩溃特征与已知错误之间的关联。
本文概述了我们使用 JMP 和其他工具分析 JMP 崩溃的流程。现在,将新的崩溃报告与已知问题匹配,或将其识别为需要进一步调查的新案例,对我们来说相对简单。然而,解决全新的、难以解释的崩溃问题并非易事。本海报展示了如何通过在崩溃报告中提供详细信息来帮助我们解决更多崩溃问题,并解释了这如何帮助 JMP 的开发流程。除了崩溃详情外,JMP 18 还允许您发送有关 JMP 功能使用情况的匿名遥测数据。我们利用这些信息来更好地了解客户的使用模式以及硬件和操作系统的分布情况。
大家好!感谢各位参加我的海报展示会,了解我最喜欢的主题之一。我是JMP开发运营总监Shannon Conners。今天我想和大家分享如何生成和共享数据,以帮助我们改进JMP。
不过首先,我先简单介绍一下我的 DevOps 团队。我们负责规划、基础设施测试以及所有支持 JMP 功能开发、漏洞修复和安全更新的生产任务。我们为各种发布周期提供支持。
好了,我的事就说到这儿。我们来聊聊你吧。如果你正在在线观看这段录制的视频,那么你很可能和我一样是 JMP 的常用用户。如果是这样,你可能已经注意到,JMP 有时会提示你向我们发送一些信息。这种情况主要有两种发生。第一种情况是,如果你不幸遇到 JMP 访问违规或软件崩溃。第二种情况是,如果你安装了 JMP,它会提示你向我们发送匿名使用统计数据。我们通常称之为遥测数据。我们要求你选择是否发送这些信息,因为我们尊重你的隐私。你可以在 JMP 首选项中设置隐私设置,当然,除非你的组织已经为你设置好了。
首先,我们来谈谈崩溃问题。JMP 的用户都很有创造力。我们都知道,你们需要访问各种不同的数据源,涉及众多行业,因此你们可能会遇到一些我们在测试中从未见过的 JMP 崩溃情况。我们在 JMP 中内置了崩溃检测功能,当软件停止运行时,这些功能会立即检测到。下次重启时,JMP 会提示您将详细信息发送给我们。
多年来,我们建立了一套内部系统,用于接收、存储和匹配这些收到的崩溃报告与已知问题。该系统能够帮助我们快速识别崩溃是新出现的,需要深入调查;还是我们已经了解,并可以指导客户何时能够获得修复,或者修复是否已经可用。除了存储客户提交的崩溃报告外,该系统还会处理内部发现的崩溃报告,这些崩溃报告可能由服务协调员、技术支持人员、测试人员或任何其他员工发现。
我们来简单了解一下它的工作原理。您可能会看到一个带有红色 X 的对话框,表示 JMP 即将关闭。我知道大家都不喜欢看到这个对话框,但您肯定会看到它。点击“确定”后,JMP 将重新启动。然后您会看到 JMP 意外退出,并且弹出一个空白区域供您添加文本。您会注意到,在弹出的窗口中,“匿名发送报告”和“检查最近的问题”选项均已勾选。
首先,请不要点击这里的“取消”按钮。如果您点击了,我们将永远无法得知您的程序崩溃了。我知道您可能会对这个窗口以及JMP发送给我们的信息感到担忧,但请放心,JMP不会发送您的打开的表格脚本或其他类似的详细信息。JMP只会发送您在窗口空白处输入的注释,以及关于您Windows系统的基本安装和检查信息,例如操作系统、已安装的驱动程序或软件列表:这些信息可以帮助我们排查问题。
最后,JMP 会发送这些崩溃文件,其中详细记录了软件停止工作时正在运行的代码路径。与其他操作系统或软件产品生成的崩溃文件一样,这些文件实际上并不适合人类阅读,它们仅在开发人员调试特定问题时才有用。
如果您接受此窗口中显示的默认设置,并点击“发送报告至 JMP”匿名提交崩溃报告,JMP 会将您的文件上传到我们的服务器。匿名提交会将您的崩溃报告添加到我们的数据库中,但请理解,仅凭崩溃文件通常无法完全诊断和重现您的问题。无论是作为开发人员调试崩溃问题,还是作为测试人员验证我们针对该问题所做的修复,使用交互式操作或 JSL 脚本重现问题才是真正的黄金标准。
我强烈建议您取消勾选“匿名”选项并提供您的电子邮件地址。这样您就可以创建一个新的技术支持案例,并与我们的技术支持团队一起解决您的问题。直接与我们的技术支持团队合作,直到他们能够重现您的问题,这将大大提高我们在未来的版本中理解并解决该问题的几率。
如果您不记得自己当时做了什么,或者没有时间与他人一起排查问题,您可以匿名提交。但如果您确实提交了,请尽量在文本框中详细描述您记得的 JMP 崩溃时的操作。无论我们是通过电子邮件向技术支持报告还是匿名报告,只要我们能够重现您遇到的崩溃问题,我们都会创建一个新的错误报告来跟踪该问题。如果我们无法重现该问题,则该崩溃记录将保留在我们的系统中,直到收到新的信息以帮助我们进行测试。
我想简单谈谈崩溃窗口,之前我曾要求您提供 JMP 停止工作时您正在进行的操作详情。第一张截图是此崩溃对话框的默认视图。正如我之前提到的,其中没有电子邮件地址,也没有提供任何客户详细信息。我将其标记为最无用,因为虽然这会将您的崩溃信息添加到我们的数据库中,但这种匿名提交且没有任何信息的崩溃报告,在未来的版本中被复现和解决的可能性微乎其微。
在第二个窗口中,一位客户匿名提交了报告,但可以看到他/她提供了一条非常有用的评论,描述了崩溃发生前他/她执行的操作,这条评论提供了足够的信息,使我们能够重现该问题。但由于他/她没有提供电子邮件地址,我们无法回复他/她,告知他/她问题已解决。现在我们已收到错误报告,并希望将来能够修复它。
第三个窗口是一个匿名提交的示例,但他们提供了足够的信息,我们可以为开发人员输入调查报告,他能够创建一个 JMP 脚本来重现该问题并立即进行修复。
最后一个窗口就是一个例子。有人提供了电子邮件地址和一个脚本。这非常有用,因为这样我们就可以运行该脚本的多个版本,从而确定问题何时开始出现,何时停止出现。我知道并非每个人都有时间编写脚本来重现问题,但如果您恰好有一个可以分享的脚本,这通常能帮助我们更快地处理问题,这非常有帮助。
我想简单介绍一下我们如何接收和处理您的文件。基本流程是:崩溃文件从服务器下载。我们会将符号重新添加到文件中,这只是处理崩溃堆栈的一个技术术语。我们将这些信息加载到数据库中,然后进行比对,得出“这个新的崩溃与我们之前见过的任何崩溃都不匹配”的结论。如果客户通过电子邮件提交了相关信息,或者在 JMP 崩溃网页(我们用于调查匿名和具名崩溃的内部网页)上提交了相关信息,我们会将这些信息显示在技术支持案例中。
遥测数据的处理流程与此非常相似。由于所有遥测数据都是匿名提交的,因此无需与客户对接,我们可以对数据进行汇总。我们将数据导入数据库,进行汇总,然后发布到 JMP Live。想要深入挖掘数据,真正了解平台或功能使用情况的开发者可以直接下载数据,并使用开发者 Evan McCorkle 创建的遥测插件进行浏览。
有趣的是,我们发现大约有 10% 的授权用户选择共享他们的遥测数据。虽然遥测数据并不能完全涵盖所有 JMP 使用情况,但我们能够很好地了解用户使用该软件的目的,这对于我们开发未来的 JMP 版本来说极其有用。
总而言之,我想强调的是,您确实能帮助我们更好地了解 JMP 出现的问题,无论是崩溃报告还是直接发送邮件至 support@jmp.com 的错误报告。我们非常感谢您提供关于遇到 JMP 问题时的操作细节。我们会认真查看这些信息,技术支持团队也会努力重现这些问题。如果是软件的测试版,我们的测试人员也会努力重现这些问题,并且我们确实希望能够解决它们。
现在,在 JMP 18 中,您还可以贡献遥测信息,这有助于我们了解用户的使用模式以及他们在软件中的操作流程和工作流程。这非常有帮助,我们希望您能积极参与。最后,我想强调的是,JMP 内部的员工也确实在使用这款软件来帮助改进 JMP 软件。
我们和你们一样。我们使用 JMP,使用 JSL,与数据库交互,清理数据,处理数据,编写脚本,并且能够创建交互式图形并将结果发布到 JMP Live。我非常喜欢崩溃分析管道和遥测管道的一点是,我们真正是在利用 JMP 来改进 JMP。我觉得这太棒了。
非常感谢您聆听我的演讲。如果您也参加Discovery大会,请务必莅临我的海报展示区,我非常希望能与您当面交流。非常感谢。