【问题标题】:Is there a way to retroactively debug an execution?有没有办法追溯调试执行?
【发布时间】:2019-04-29 20:51:47
【问题描述】:

我有一套集成测试间歇性地失败,我无法在本地对其进行调试,但经常会导致我的 400 测试套件经常出现 1 或 2 次失败。

我使用 Intellij,所以我可以“运行直到失败”,但这并不能帮助我调试正在发生的事情。

有没有办法在 Exception 上吐出某种调试信息,让我在失败的确切条件下模拟运行测试?如果没有,是否有另一种方法可以做到这一点,而不是仅仅添加大量的日志记录并运行测试直到失败?

【问题讨论】:

标签: java intellij-idea


【解决方案1】:

IntelliJ IDEA 支持 Chronon,这是一种时间旅行调试器,可能对您的情况有所帮助。

最后一个兼容的 IntelliJ IDEA 版本是2019.2.4

Chronon plug-in page.

【讨论】:

【解决方案2】:

我认为这是不可能的。如果您通过网络发送数据,您会怎么做。您到达断点,然后决定返回。无法取消发送该数据。您的软件系统将永远不会再处于相同的状态。

到达断点后,您可以查看堆栈的调用层次结构并确定插入新断点的位置。

您还可以在关键位置添加.log 语句,以便在激活断点时获得一些数据。这样您就可以在日志中看到之前发生的情况。

【讨论】:

  • 这是有道理的,但我不想让它再次执行。我只想逐步了解它已经做过的事情
  • 我不能在只有四百次失败的代码中设置断点。记录和重新运行很痛苦,所以这个问题主要是为了寻找更好的方法。
猜你喜欢
  • 2021-03-28
  • 2013-09-04
  • 2018-01-25
  • 2020-12-13
  • 1970-01-01
  • 2013-05-12
  • 1970-01-01
  • 2016-04-20
  • 2019-10-20
相关资源
最近更新 更多