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

更新:2007 年 11 月

本主题适用于:

版本

Visual Basic

C#

C++

Web Developer

速成版

主题不适用 主题不适用

仅限本机

主题不适用

标准版

主题不适用 主题不适用

仅限本机

主题不适用

专业团队版

主题不适用 主题不适用

仅限本机

主题不适用

表格图例:

主题适用

适用

主题不适用

不适用

主题适用,但命令默认情况下隐藏

默认情况下隐藏的一条或多条命令。

问题描述

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

解决方案

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

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

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

请参见

概念

调试本机代码常见问题

断点与跟踪点

其他资源

调试本机代码