我经常遇到如下调试场景:
测试人员提供了一些错误的重现步骤。为了找出问题所在,我尝试使用这些重现步骤来获得最少的必要重现步骤。有时,幸运的是,我发现当对步骤做一些小改动时,问题就消失了。
然后工作转向查找这两个重现步骤之间代码工作流程的差异。这项工作既乏味又痛苦,尤其是当您在大型代码库上工作时,它会处理大量代码并涉及您不熟悉的大量状态更改。
所以我想知道是否有任何工具可以用来比较“代码工作流程”。当我在 WinDbg 中学习了“wt”命令时,我认为这可能是可行的。例如,我可以在一些具有 2 个不同重现步骤的大多数函数上运行“wt”命令,然后比较输出之间的差异。然后应该很容易找到代码流开始 fork 的地方。
但 WinDBG 的问题是“wt”相当慢(也许我应该使用日志文件而不是输出到屏幕)并且不是很用户友好(与 visual studio 调试器相比)......所以我想问一下你们有可用的现有工具吗?还是为 visual studio 调试器开发支持此功能的“插件”可能且困难?
谢谢
最佳答案
我会在探查器下以“覆盖”模式运行它,然后对结果使用 diff 来查看代码的哪些部分在一次运行中执行,而不是另一次运行。
关于c++ - 代码工作流程出现问题时如何快速调试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2159722/