再次使用气球表达式求值检查 err_silent。现在的值为 -1。最有可能的原因是,在您到达 printField() 之前,一个 err_silent-- 执行得太多,或者一个 err_silent++ 执行得太少。
您可以通过仔细检查代码,在与该示例类似的小程序中找到这个不匹配的 err_silent 对。但是,大型程序可能包含大量的以下配对:
err_silent++; err_silent--;
更为快捷地找到不匹配的 err_silent 对的方法是使用监视点。
错误的原因可能根本不是不匹配的 err_silent++; 和 err_silent--; 对,而是一个覆盖了 err_silent 内容的异常指针。在捕获此类问题时,监视点会比较有效。