ブレークポイントAをコードのどこかに設定し、このブレークポイントにヒットしたときに手動で1つ以上のブレークポイントを有効にすることがよくあります。典型的なケースは、私がunittestをデバッグしているときで、前のテストについて気にしない場合です。ブレークポイントAがヒットした場合はブレークポイントBを有効にしてください
void testAddZeros()
{
Number a(0);
Number b(0);
Number result = a.add(b);
assert((a + b) == Number(0))
}
void testAddOnes()
{
Number a(1);
Number b(1);
Number result = a.add(b);
assert((a + b) == Number(2));
}
void testAddNegativeNumber()
{
Number a(1);
Number b(-1)
Number result = a.add(b);
assert((a + b) == Number(0));
}
場合testAddZeros()
とtestAddOnes()
細かい動作しますが、testAddNegativeNumber()
を想像してみてください。この場合、デバッグを開始するには、ブレークポイントをNumber result = a.add(b);
に設定するのが自然です。エラーがNumber::add
の深いどこかにあると想像してください。したがって、私たちは実際にはNumbers::add
の早い段階で起こっていることに関わっていません。私がしたいのは、私がtestAddNegativeNumber()
テストの中にいる場合にのみトリガーするNumbers::add
の中のどこかにブレークポイントを設定することです。
ブレークポイントA
がヒットした場合、ブレークポイントB
を自動的に有効にする方法はありますか?
条件付きブレークポイントを確認しましたか?おそらく、ブレークポイントAがヒットした条件を使用して '条件付き'ブレークポイントBを有効にすることができます(この場合、ブレークポイントAはもう必要ありません)。 – ChristiaanV
@ChristiaanV:はい、私は条件付きブレークポイントはできませんこの場合、少なくとも一般的ではありません。 – larsmoa
これを使用したいコードサンプルを表示できますか? – ChristiaanV