如何记录调试会话的上下文?

时间:2013-09-02 20:09:15

标签: debugging

狩猎错误通常由97%的“了解代码库的特定部分”和3%的“编写几行来解​​决问题一旦正确理解”。

当错误真的很难理解时,它可能意味着整整一天查看代码,尝试一些实验,设置断点并逐步完成代码以了解这个神秘的错误。这整天的工作将在CVS中被记住,因为代码库中的一个非常小的变化(包括简短的评论)以及“修复的#xxxx问题,[某些组件]正在做[无论如何]错误... “作为提交消息。

因此,在一天结束时,错误不再存在,但有关它的唯一存储信息将是CVS中的差异。在调试器中潜伏的时间能够编写最终的错误修复代码行将永远丢失。

我希望能够记录调试会话的一些关键指标/事件,例如:

  • 函数我在
  • 中设置了断点
  • 输入数据我手动输入程序以重现问题
  • 已修改并还原以测试某些行为的代码
  • 调用堆栈
  • ...

将此“调试摘要”链接到提交注释可以在以后处理相关错误时实现更快的上下文切换。

是否有一些工具可以做到这一点? (这个问题是语言/ IDE不可知的......)

1 个答案:

答案 0 :(得分:2)

我通常会在调试会话期间保留一份书面日记。这是保持工作效率和保持方向的一种方式。但事实上我很少读到这本杂志。我怀疑你所要求的工具就是这种情况。

相反,我的建议是确保您只修复一次错误。将测试用例添加到自动化测试套件中。清理这个凌乱区域周围的设计,以便下次不当时你不必花太多时间在上面。 (测试套件是保存“我手动输入程序的输入数据”的最佳位置,还有什么是“修改并恢复测试某些行为的代码”而不是非正式的单元测试?)