अगर मैं वर्तमान क्षेत्र के लिए एक चर स्थानीय के लिए एक watchpoint निर्धारित करते हैं, यह स्वत: हटा दिया जाएगा जब क्षेत्र से बाहर जा रहा है। क्या इसे एक बार सेट करने और इसे एक ही दायरे में प्रवेश करते समय ऑटो को जीवित रखने का कोई तरीका है?मैं स्थानीय रूप से स्कॉप्ड चर पर लगातार और सशर्त घड़ीपटल कैसे सेट करूं?
वहाँ वैसे भी
watch var1 if var1==0
तरह सशर्त watchpoint स्थापित करने के लिए, है? मेरे मामले में, हालत काम नहीं करती है।var1
का मूल्य बदल जाता है,var1 == 0
तक की जगह सही होने पर gdb बंद हो जाता है। मेरा जीडीबी जीएनयू जीडीबी 6.8-डेबियन है।
उत्तर
मुझे यकीन है कि जो भाषा हमें, उपयोग कर रहे हैं तो सटीक उत्तर अलग-अलग होगा, लेकिन आप चर को बदल सकता है या तो, स्थिर वैश्विक, या गतिशील आवंटित होने के लिए (नहीं कर रहा हूँ और नि: शुल्क नहीं है जब समारोह वापस आता है?)। इस तरह यह कच्चा पता बदल नहीं जाएगा, और जीडीबी इस पर ब्रेकपॉइंट सक्षम हो जाएगा।
- मूल्य whe यह एक विशिष्ट मूल्य के बराबर होती है देखने की बजाय
; आपको उस लाइन पर एक सशर्त ब्रेक पॉइंट सेट करना चाहिए जहां आप
var1
के मान को देखना चाहते हैं। यह प्रभावी रूप से एक ही प्रभाव
उदा।
(gdb) break main.c:123 if (var1 == 0)
मैं डेव से सहमत हूं कि एक सशर्त ब्रेकपॉइंट जाने का तरीका है।
हालांकि, जो भी आपने पूछा है, करने के लिए, आप जीडीबी के commands
कमांड का उपयोग जीडीबी कमांड की सूची सेट करने के लिए कर सकते हैं जब भी ब्रेकपॉइंट मारा जाता है। मुझे यह अविश्वसनीय रूप से उपयोगी लगता है।
मैं आपके जीडीबी कमांड को एक फाइल में लिखने का सुझाव देता हूं ताकि उन्हें संपादित करना आसान हो और source
कमांड के साथ पुनः लोड करना आसान हो। या आप जीडीबी कमांड लाइन पर लोड करने के लिए कमांड फाइल निर्दिष्ट कर सकते हैं या उन्हें स्वचालित रूप से लोड करने के लिए .gdbinit का उपयोग कर सकते हैं।
commands
का अच्छा उपयोग का एक उदाहरण:
मान लीजिए कि मैं एक समारोह format
कि अन्य कार्यों का एक बहुत द्वारा कहा जाता है। मैं इसे तोड़ना चाहता हूं, लेकिन केवल do_step_3
को फ़ंक्शन के बाद बुलाया गया है।
break do_step_3
commands
break format
continue
end
आप की तरह कुछ के साथ अपनी समस्या के लिए इसका उपयोग कर सकते हैं:
break func
commands
watch var
continue
end
उत्कृष्ट अंक! धन्यवाद! – Tim
आप एक ही तरीका है कि आप विच्छेदबिंदु के साथ क्या में watchpoints पर स्थिति सेट कर सकते हैं। यह in the documentation है लेकिन स्वीकार्य रूप से यह शायद ही कभी खुद पर ध्यान देता है।
तो watch my_var if my_var > 3
बस ठीक काम करता है, के रूप में condition
आदेश करता है।
watchpoint से बनाने के लिए चर यह देख रहा है क्षेत्र से बाहर जाता है, gdb समारोह के शुरू में स्वचालित रूप से एक ब्रेकप्वाइंट का उपयोग कर ऐसा कर चुके हैं Zan वर्णन किया है।
आप एक watchpoint कि क्षेत्र से बाहर स्मृति पते पर सेट करके नहीं जाता सेट कर सकते हैं।
(gdb) p &var1
$1 = (int *) 0x41523c0
(gdb) watch *(int *)0x41523c0
Hardware watchpoint 1: *(int *)0x41523c0
यह अन्य डेटा प्रकारों और पॉइंटर्स के लिए भी काम करता है।
यह उपयोगी हो सकता है, लेकिन यहां काम नहीं करेगा। स्थानीय चर फ़ंक्शन कॉल के बीच एक ही पते को बनाए रखेंगे - लेकिन अन्य स्टैक वैरिएबल उस स्मृति स्थान का उपयोग करने की संभावना है ... – Nick
- 1. मैं वैचारिक टेम्पलेट को सशर्त रूप से कैसे संकलित करूं?
- 2. मैं सशर्त रूप से एक WPF टेक्स्टब्लॉक कैसे प्रारूपित करूं?
- 3. मैं सी # में पर्यावरण चर कैसे प्राप्त और सेट करूं?
- 4. यदि मैं विंडोज पर हूं तो मैं सशर्त रूप से पर्ल मॉड्यूल का उपयोग कैसे करूं?
- 5. मैं स्थानीय रूप से ओथ के खिलाफ कैसे विकसित करूं?
- 6. मैं स्थानीय रूप से और गिथब पर अपने भंडार का उपयोग कैसे शुरू करूं?
- 7. मैं एक फ़ाइल स्थानीय चर के साथ एक Emacs बफर नाम कैसे सेट करूं?
- 8. मैं जेटी में प्रोग्रामेटिक रूप से gzip कैसे सेट करूं?
- 9. मैं कमांडलाइन पैरामीटर के आधार पर एक एनएसआईएस स्क्रिप्ट को सशर्त रूप से संकलित कैसे करूं?
- 10. आंतरिक वर्ग और स्थानीय चर
- 11. मैं WPF में गतिशील रूप से ItemTemplate कैसे सेट करूं?
- 12. मैं प्रोग्रामेटिक रूप से डॉकस्ट्रिंग कैसे सेट करूं?
- 13. सशर्त रूप से अपाचे में कैश हेडर सेट करना
- 14. स्थानीय संचय पुस्तकालय सी # (लगातार और एन्क्रिप्टेड)
- 15. सशर्त अभिव्यक्ति में लगातार मूल्य
- 16. मैं स्थानीय रूप से/आधार पर एक एज़ूर कार्यकर्ता की भूमिका कैसे होस्ट करूं?
- 17. मैं जेपीनल और उसके बच्चों पर टूलटिप कैसे सेट करूं?
- 18. सशर्त रूप से नोड
- 19. मैं पैराबॉलिक रूप से अनुवाद कैसे करूं?
- 20. cx_Oracle: मैं परिणाम सेट पर फिर से कैसे सक्रिय करूं?
- 21. मैं पर्ल में पर्यावरण चर सेट कैसे करूं?
- 22. रेल पर रूबी: सशर्त रूप से आंशिक रूप से आंशिक
- 23. मैं वेब सर्वर से स्थानीय शेल स्क्रिप्ट कैसे कॉल करूं?
- 24. स्थानीय चर पर कचरा संग्रह
- 25. मैं सशर्त ऑपरेटर का उपयोग कैसे करूं?
- 26. मैं लगातार
- 27. सशर्त रूप से फ़ंक्शन
- 28. मैं एक कस्टम शीर्षक बार पर पृष्ठभूमि रंग ढाल प्रोग्रामेटिक रूप से कैसे सेट करूं?
- 29. मैं jboss पर jax-ws क्लाइंट अनुरोध टाइमआउट प्रोग्रामेटिक रूप से कैसे सेट करूं?
- 30. पावरहेल में, मैं $ var के रूप में नाम की आपूर्ति करके पर्यावरण चर सेट कैसे करूं?
मैं सी ++ का उपयोग कर रहा हूं। मैं ब्रेकपॉइंट पर वॉचपॉइंट का उपयोग करता हूं क्योंकि चर के मान को बदलने वाले कोड में कई जगहें हो सकती हैं। इसलिए प्रत्येक स्थान पर ब्रेकपॉइंट जोड़ने के लिए यथार्थवादी नहीं है। मैं देखना चाहता हूं कि सशर्त दृष्टिकोण निर्धारित करना संभव है या नहीं। – Tim