मैं उबंटू 11.04 पर काम कर रहा हूं। मैं प्रक्रिया के अधिकतम कॉल स्टैक आकार और स्टैक के प्रत्येक फ्रेम का आकार कैसे प्राप्त करूं?मुझे अधिकतम स्टैक आकार कैसे मिल सकता है?
उत्तर
आप getrlimit
का उपयोग कर अधिकतम प्रक्रिया और ढेर आकारों से पूछ सकते हैं। ढेर फ्रेम के पास एक निश्चित आकार नहीं है; यह इस बात पर निर्भर करता है कि प्रत्येक फ्रेम की कितनी स्थानीय डेटा (यानी स्थानीय चर) की आवश्यकता होती है।
कमांड लाइन पर ऐसा करने के लिए, आप ulimit का उपयोग कर सकते हैं।
आप एक चलने वाली प्रक्रिया के लिए इन मूल्यों को पढ़ने के लिए चाहते हैं, तो मुझे लगता है कि यह करता है किसी भी उपकरण के बारे में पता नहीं है, लेकिन यह/proc फाइल सिस्टम क्वेरी करने के लिए पर्याप्त आसान है:
cat /proc/<pid>/limits
आप getrlimit
उपयोग कर सकते हैं इसे बदलने के लिए स्टैक आकार और setrlimit
देखने के लिए।
Increase stack size in Linux with setrlimit पोस्ट में एक उदाहरण है।
उबंटू में कोई आदेश नहीं है जैसे getrlimit – HMS
एक त्वरित Google खोज some information on this subject प्रकट करना चाहिए।
> ulimit -a # shows the current stack size
बेशक, एक त्वरित Google खोज अब इस पृष्ठ पर कार्य करती है। – gerardw
किलोबाइट में अधिकतम ढेर आकार:
ulimit -s
मैं त्रुटि नहीं मिला एक आदेश मिलता है। इस आदेश के लिए मुझे किस पैकेज को स्थापित करने की आवश्यकता है? – Bruce
यह एक सी एपीआई कॉल है, कमांड लाइन उपकरण नहीं। –
उन्हें कुछ शुरुआती आकार सही होना चाहिए? क्या कंपाइलर पहले से ढेर फ्रेम के आकार की गणना करता है (सभी स्थानीय चरों को ध्यान में रखते हुए) और फिर फ्रेम आवंटित करता है? – Bruce