2012-03-21 15 views
13

प्राप्त हुआ है, मैं एक (एम्बेडेड) सॉफ़्टवेयर का एक टुकड़ा डिबग कर रहा हूं। मैंने फ़ंक्शन पर ब्रेकपॉइंट सेट किया है, और किसी कारण से, एक बार जब मैं उस ब्रेकपॉइंट पर पहुंच गया हूं और continue मैं हमेशा फ़ंक्शन पर वापस आ जाता हूं (जो एक प्रारंभिक फ़ंक्शन है जिसे केवल एक बार कहा जाना चाहिए)। जब मैं ब्रेकप्वाइंट हटाने, और continue, GDB मुझसे कहता है:प्रोग्राम सिग्नल सिगट्रैप, ट्रेस/ब्रेकपॉइंट जाल

Program received signal SIGTRAP, Trace/breakpoint trap.

जब से मैं breakpoints के साथ काम कर रहा था, मुझे लगता है मैं एक "ब्रेकप्वाइंट जाल" में गिर गई संभालने हूँ। ब्रेकपॉइंट जाल क्या है?

+0

एक और वर्बोज़ शीर्षक जोड़ा गया। यह अन्य उपयोगकर्ता की मदद करेगा –

+0

यह भी सवाल है कि आप [इलेक्ट्रॉनिक्स एसई] (http://electronics.stackexchange.com) पर पोस्ट कर सकते हैं। – Kortuk

+1

@ Kortuk इस जीडीबी क्यूएन इलेक्ट्रॉनिक्स से संबंधित किस तरह से? : -o –

उत्तर

8

ब्रेकपॉइंट जाल का मतलब है कि प्रोसेसर ने ब्रेकपॉइंट मारा है। यह क्यों हो रहा है के लिए दो संभावनाएं हैं। सबसे अधिक संभावना है कि, आपका प्रारंभिक कोड हिट किया जा रहा है क्योंकि आपका सीपीयू रीसेट कर रहा है और ब्रेकपॉइंट को फिर से मार रहा है। दूसरी संभावना यह होगी कि जिस कोड को आपने ब्रेकपॉइंट सेट किया है वह वास्तव में प्रारंभिक के अलावा अन्य स्थानों पर चलाया जाता है। कभी-कभी आक्रामक कंपाइलर ऑप्टिमाइज़ेशन के साथ यह कहना मुश्किल हो सकता है कि आपका ब्रेकपॉइंट मानचित्र किस कोड पर है और कौन से निष्पादन पथ वहां जा सकते हैं।

+0

यदि सीपीयू रीसेट करता है, तो क्या जीडीबी अभी भी जीवित होगा और उपयोगकर्ता के निष्पादन योग्य से जुड़ा होगा? –

+1

@ पवनमंजुनथ, हाँ सीपीयू को रीसेट करने के लिए संभव है और फिर जीडीबी सत्र को परेशान किए बिना ब्रेकपॉइंट पर क्लिक करें। – TJD

-3

यदि आप बैकअप आपूर्ति के रूप में वी बीएटी का उपयोग करते हैं और आपके बैकअप वोल्टेज 1.65V से कम ड्राइव करते हैं तो आपको बिजली की आपूर्ति के बाद एक ही समस्या मिलती है।

इस मामले में आपको सभी बिजली की आपूर्ति को डिस्कनेक्ट करना होगा और सही वोल्टेज स्तर से पुनः कनेक्ट करना होगा। फिर डीबगिंग के साथ समस्या दूर हो जाती है।

+2

यह माइक्रोकंट्रोलर/माइक्रोप्रोसेसर पर पूरी तरह से निर्भर है। – Dean

6

अन्य संभावना मैं के बारे में सोच सकता है:

1. अपनी प्रक्रिया से अधिक एक धागा चल रहा है।

उदाहरण के लिए - 2 कहें x & y।

2. थ्रेड y तोड़ने बिंदु हिट लेकिन आप एक्स सूत्र में बाँधना संलग्न gdb है।

यह मामला एक ट्रेस/ब्रेकपॉइंट जाल है।

+1

यूनिट टेस्ट फ्रेमवर्क का उपयोग करते समय यह एक आम लक्षण है जो परीक्षण के मामलों को फोर्क करता है। जानकार अच्छा लगा! –

1

मुझे यह समस्या विजुअल स्टूडियो 2015 में लिनक्स प्रोजेक्ट चलाने और दूरस्थ रूप से डिबगिंग करने में मिली है। मेरा समाधान project_properties -> कॉन्फ़िगरेशन गुण -> डिबगिंग -> डिबगिंग मोड और "gdbserver" से "gdb" मान को बदलें