debugging - 如何重现偶尔发生的错误?

标签 debugging language-agnostic logging

我们的应用程序中有一个错误,该错误并非每次都会发生,因此我们不知道它的“逻辑”。我今天连 100 次都没有复制它。

免责声明:这个错误存在并且我已经看到了。这不是pebkac或类似的东西。

重现此类错误的常见提示是什么?

最佳答案

两人一组分析问题,两人一组阅读代码。记下您知道的真实问题,并尝试断言哪些逻辑前提条件必须成立才能发生这种情况。像 CSI 一样追踪证据。

大多数人本能地说“添加更多日志记录”,这可能是一个解决方案。但对于很多问题来说,这只会让事情变得更糟,因为日志记录可以充分改变时间依赖性,从而使问题或多或少发生。将频率从千分之一更改为百万分之一并不会让您更接近问题的真正根源。

因此,如果您的逻辑推理无法解决问题,它可能会为您提供一些细节,您可以通过代码中的日志记录或断言进行调查。

关于debugging - 如何重现偶尔发生的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2515903/

相关文章:

language-agnostic - 如何处理用蹩脚代码编写的优秀产品?

linux - 捕获中断时抑制终端输出中的 '^C' 字符串

linux - 使用带有 Node webapp 的 vhosts 的记录器

debugging - 如何调试在IntelliJ的Kubernetes容器中运行的Kotlin应用程序?

java - Eclipse 调试器中的 toString() 不可用错误

java - 不幸的是 MyApp 已停止。我该如何解决这个问题?

data-structures - 链表的应用

asp.net - 是否可以在不影响该服务的所有用户的情况下调试 IIS?

language-agnostic - 有哪些软件驱动双足机器人运动的技术?

logging - 什么是 Boost 日志 "debug output window"?