当一个函数被调用数百次时,如何确定哪次调用失败了?

问题描述

程序在调用某函数(如 CnvtV)时失败。 失败以前该程序可能已调用了该函数数百次。 如果我在 CnvtV 上设置一个位置断点,程序在每次调用该函数时都停止,而我不希望这样。 我不知道什么条件导致调用失败,所以无法设置条件断点。 我该怎么办?

解决方案

在函数上设置断点时可以将**“命中次数”字段设置为一个大到永远无法达到的值。 在这种情况中,由于您确信函数 CnvtV 被调用了数百次,所以将“命中次数”**设置为 1000 或更高。 然后运行程序,等待调用失败。 程序失败后,打开“断点”窗口并查看断点列表。 将显示您在 CnvtV 上设置的断点,其后跟着命中次数和剩余迭代次数:

CnvtV(int) (no condition) when hit count is equal to 1000 (currently 101)

现在您知道函数在第 101 次调用时失败。 如果重置断点,将命中次数设置为 101,然后再次运行程序,程序将在导致 CnvtV 调用失败的位置停止所有该调用。

请参见

概念

调试本机代码常见问题

其他资源

Setting Breakpoints

调试本机代码