मुझे अक्सर कोड में कहीं ब्रेकपॉइंट सेट करना पड़ता है और इस ब्रेकपॉइंट पर हिट होने पर मैन्युअल रूप से एक या अधिक ब्रेकपॉइंट सक्षम करता है। एक ठेठ मामला तब होता है जब मैं एक अचूक डिबगिंग कर रहा हूं और पिछले परीक्षणों की परवाह नहीं करता हूं।ब्रेकपॉइंट बी को सक्षम करें यदि ब्रेकपॉइंट ए मारा गया है
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
में शुरू होने वाली सामग्री में वास्तव में हस्तक्षेप नहीं कर रहे हैं। मैं क्या करना चाहता हूं Numbers::add
के अंदर कहीं ब्रेकपॉइंट सेट करना है जो केवल testAddNegativeNumber()
-test के अंदर है तो ट्रिगर करता है।
क्या ब्रेकपॉइंट ब्रेकपॉइंट B
स्वचालित रूप से सक्षम करने का कोई तरीका है?
क्या आपने सशर्त ब्रेकपॉइंट्स की जांच की है? शायद आप उस स्थिति का उपयोग कर सकते हैं जिस पर 'सशर्त' ब्रेकपॉइंट बी को सक्षम करने के लिए ब्रेकपॉइंट ए मारा जाता है। (उस स्थिति में आपको मैबी को ब्रेकपॉइंट ए की आवश्यकता नहीं है) – ChristiaanV
@ क्रिस्टियानवी: हाँ, लेकिन मुझे डर है कि सशर्त ब्रेकपॉइंट्स नहीं होंगे इस मामले में पर्याप्त - कम से कम सामान्य रूप से नहीं। – larsmoa
क्या आप एक कोड नमूना दिखा सकते हैं, जहां आप इसका उपयोग करना चाहते हैं? – ChristiaanV