2013-10-15 6 views
9

मैंने हाल ही में एक्लिप्स-सीडीटी का उपयोग करना शुरू कर दिया है और डीबगिंग परिप्रेक्ष्य में चर विंडो में 'यह' और 'यह @ एंट्री' के बारे में उत्सुक था। दोनों के पास एक ही स्मृति पता है और समान दिखते हैं लेकिन फिर दोनों को क्यों शामिल करते हैं? क्या यह 'एंट्री' एक समारोह के भीतर कुछ ब्रेकपॉइंट पर 'इस' की स्थिति का प्रतिनिधित्व करने के लिए है? 'इस @ एंट्री' के तहत प्रतिनिधित्व किए गए मान स्कोप से बाहर निकलते हैं, इसलिए बोलने के लिए बोलते हैं और 'यह' अपडेट करते हैं?इस और इस प्रविष्टि के बीच अंतर?

They both have the same memory address but...

team1,2 और currentMatch वर्ग मैं डिबगिंग हूँ करने के लिए वैश्विक चर रहे हैं, और breakpoints कि वर्ग के एक सदस्य समारोह में हैं।

उत्तर

12

@entry फॉर्म फ़ंक्शन दर्ज किए जाने पर पैरामीटर के मान को संदर्भित करता है। यह हमेशा उपलब्ध नहीं होता है, लेकिन कभी-कभी यह होता है - इसके लिए एक डीडब्ल्यूएआरएफ एक्सटेंशन होता है, और जब संभव हो तो जीसीसी इसे छोड़ देता है।

gdb के CLI हम एक प्रारूप है कि केवल "@entry" बैकट्रैस में पता चलता है जब यह वर्तमान मूल्य से अलग है पर फैसला में

https://sourceware.org/gdb/onlinedocs/gdb/Variables.html

IIRC:

यहां कुछ जानकारी नहीं है। लेकिन एमआई (क्या ग्रहण करता है) अलग है और जो भी आप कहते हैं उससे हमेशा यह दिखता है।

संबंधित मुद्दे