関数の else ブロックから実際に進んでいることをダブルチェックする方法の 1 つは、checkThings() にブレークポイントを設定し、プログラムを実行することです。しかし、checkThings() は何度も呼び出される可能性があります。ブレークポイントカウントまたは境界ブレークポイントを使用して checkThings() の正しい呼び出しに到達できますが、最近実行された処理をよりすばやく再現するには、スタックをポップします。
「デバッグ」->「スタック」->「最上位の呼び出しをポップ」を選択します。
「最上位の呼び出しをポップ」がすべてを元に戻さないことに注意してください。特に、データデバッグからコントロールフローデバッグに切り替えているため、err_silent の値はすでに間違っています。
プロセスの状態は、checkThings() の呼び出しを含む行の最初に戻ります。
「ステップイン」
をクリックすると、checkThings() が再度呼び出されるたびに監視できます。
checkThings() をステップスルーするにつれて、プロセスが if ブロックを実行することを確認でき、ここで err_silent は増分されず、-1 に減らされます。
プログラミングエラーが見つかったようですが、それをトリプルチェックすることをお勧めします。