2008-10-01 14 views
9

क्या जीसीसी के साथ संकलन/लिंक समय पर विंडोज़ एप्लिकेशन के स्टैक आकार को बढ़ाने का कोई तरीका है?विंडोज़ पर स्टैक साइज बढ़ाएं (जीसीसी)

+0

क्या कोई मुझे बता सकता है कि स्टैक आकार में वृद्धि क्या है? स्टैक फ्रेम स्टैक पर एक फ़ंक्शन द्वारा कब्जा कर लिया गया हिस्सा है। और स्टैक ऑपरेटिंग सिस्टम द्वारा सही तय किया जाता है? 'एडिटबिन' कैसे मदद करता है? मैं उलझन में हूं! – claws

उत्तर

6

आप लिंकिंग के बाद एडिटबिन चला सकते हैं।

+0

मैं निश्चित रूप से कर सकता था - और ऐसा लगता है कि मुझे अनिवार्य रूप से करना होगा - लेकिन मैं लिंक समय पर ऐसा करने का एक तरीका ढूंढ रहा था। हालांकि धन्यवाद। – Landon

0

धागे बनाते समय आप dwStackSize paremater का उपयोग करते हैं, लेकिन मुझे यकीन नहीं है कि मुख्य धागे के आकार को कैसे बदला जाए, यह exe के शीर्षलेख में इंगित करता है, इसलिए यह कंपाइलर/लिंकर के लिए एक विकल्प हो सकता है, अन्यथा आपको हेडर का प्रासंगिक भाग ढूंढना होगा और इसे स्वयं बदलना होगा।

http://msdn.microsoft.com/en-us/library/ms686774(VS.85).aspx

17

IIRC, जीसीसी में आप --stack, [बाइट्स] ld के लिए पैरामीटर प्रदान कर सकते हैं।

उदा।

gcc -Wl,--stack,16777216 -o file.exe file.c 

16 एमआईबी का ढेर रखने के लिए, मुझे लगता है कि डिफ़ॉल्ट आकार 8 एमआईबी है।

+0

यही वह है जिसे मैं मूल रूप से ढूंढ रहा था। दुर्भाग्यवश, मेरे पास विंडोज़ पर इसके साथ कोई भाग्य नहीं है। क्या तुम? – Landon

+1

+1 यह वास्तव में काम करता है जब मैंने इसे जीसीसी 4.5.2 पर करने की कोशिश की। इस स्विच के बिना, संकलित प्रोग्राम स्थिर सरणी आकार ~ 500k के साथ segfaulting शुरू करते हैं। इस स्विच को लागू करने के बाद, मैं घटना के बिना 3 मिलियन तत्वों तक आकार को बढ़ाने में सक्षम था। – greatwolf

2

विंडोज़ में दो स्टैक आकार हैं। प्रारंभिक रूप से कम आकार, और कुल आरक्षित आकार। आप एक .def फ़ाइल में STACKSIZE कथन दोनों के साथ सेट कर सकते हैं।

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