2011-09-20 25 views

उत्तर

18

एक कॉल स्टैक आमतौर पर "संचालन का वर्तमान ढेर" होता है - यानी यह चल रहा है।

एक स्टैक ट्रेस आम तौर पर कॉल स्टैक की एक प्रति है जो किसी प्रकार की विफलता पर लॉग होता है, उदा। एक अपवाद।

दूसरे शब्दों में, जब आप डिबगिंग करते हैं तो आप वर्तमान कॉल स्टैक को देखेंगे - लेकिन जब आप लॉग देखेंगे, तो आपको एक स्टैक ट्रेस मिलेगा। कम से कम, यह मेरी शर्तों की व्याख्या है :)

+0

मैं इसे स्टैक ट्रेस के रूप में देखता हूं क्योंकि कॉल स्टैक के साथ आपकी प्रगति के परिणामस्वरूप (बेहतर शब्द के बारे में सोचने की कोशिश कर रहा है)? या वह गलत है? – AndrewC

+0

@ एंडीसी: मुझे यकीन नहीं है कि मैं समझता हूं कि "कॉल स्टैक के साथ प्रगति" का क्या अर्थ है। –

+0

हम्म, मैं संभावित रूप से गलत हूं (या तो वह या मैं समझाते हुए वास्तव में बुरा हूं :))। जैसे कॉल स्टैक वह मार्ग है जिसे आप एप्लिकेशन के माध्यम से ले जा रहे हैं, तो स्टैक ट्रेस आपको दिखाता है कि आपने अभी तक कैसे किया है? – AndrewC

9

कॉल स्टैक एक चलती प्रोग्राम में सक्रिय सबराउटिन के बारे में जानकारी संग्रहीत करने वाली डेटा संरचना है। स्टैक ट्रेस कॉल स्टैक का प्रतिनिधित्व है।

6

मुझे लगता है कि विकिपीडिया उन दोनों के बीच भेद पर एक काफी अच्छा काम करता है:

एक कॉल स्टैक एक ढेर डेटा संरचना है कि एक कंप्यूटर प्रोग्राम

के सक्रिय सबरूटीन्स एक स्टैक ट्रेस है के बारे में जानकारी संग्रहीत करता है एक कार्यक्रम के निष्पादन के दौरान समय में एक निश्चित बिंदु पर सक्रिय ढेर फ्रेम की एक रिपोर्ट।

दूसरे शब्दों में, कॉल स्टैक स्मृति में वास्तविक डेटा संरचना है, जबकि स्टैक ट्रेस कहा गया डेटा संरचना का एक स्नैपशॉट है।

+3

+1 – pencilCake

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