मैं सीएलआर के साथ यह कैसे परिचित नहीं हूं, लेकिन यह शायद मूल कोड के साथ कैसे किया जाता है, यह बहुत ही समान है। जब संकलक मशीन निर्देश उत्पन्न करता है, तो यह पीडीबी में प्रविष्टियों को जोड़ता है जो मूल रूप से "वर्तमान पते पर निर्देश, एक्स, foo.cpp में लाइन 25 से आया" कहता है।
डिबगर जानता है क्या कार्यक्रम का पता वर्तमान में क्रियान्वित किया गया है। तो यह पीडीबी में कुछ पता, एक्स देखता है और देखता है कि यह foo.cpp में लाइन 25 से आया था। इसका उपयोग करके, यह आपके स्रोत कोड के माध्यम से "कदम" करने में सक्षम है।
यह प्रक्रिया डीबग या रिलीज मोड के बावजूद समान है (बशर्ते कि एक पीडीबी रिलीज मोड में उत्पन्न हो)। हालांकि, आप सही हैं, हालांकि ऑप्टिमाइज़ेशन के कारण रिलीज मोड में अक्सर डीबगर कोड के माध्यम से "रैखिक रूप से" कदम नहीं उठाएगा। यह अनपेक्षित रूप से विभिन्न लाइनों के आसपास कूद सकता है। यह ऑप्टिमाइज़र के निर्देशों के क्रम को बदलने के कारण है, लेकिन यह पता-से-स्रोत-लाइन मैपिंग को नहीं बदलता है, इसलिए डीबगर अभी भी इसका पालन करने में सक्षम है।
स्रोत
2009-06-01 17:47:19
टा। चीजें अब मेरे लिए स्पष्ट हैं। –