ID บทความ: 000085301 ประเภทข้อมูล: การแก้ไขปัญหา การตรวจสอบครั้งล่าสุด: 13/02/2006

ทําไมฉันจึงได้รับข้อผิดพลาด "สแต็กโอเวอร์โฟลว์" เมื่อเรียกใช้โปรแกรมเครื่องเล่น JamTM Standard Test and Programming Language (STAPL) ในเวอร์ชันพอร์ตของฉัน หรือ Jam STAPL Byte-Code Player

สิ่งแวดล้อม

BUILT IN - ARTICLE INTRO SECOND COMPONENT
คำอธิบาย หากคุณได้รับข้อผิดพลาดรันไทม์ "stack overflow" คุณต้องบอกคอมไพเลอร์ที่ใช้ในการคอมไพล์โค้ดต้นฉบับ Jam Player ว่ามีขนาดใหญ่เพียงใด สแต็กต้องเป็น ทั้ง Jam STAPL Player และ Jam STAPL Byte-Code Player ต้องจัดเก็บไว้อย่างน้อย 50,000 ไบต์บน กอง ซ้อน คอมไพเลอร์บางตัวทําให้ขนาดสแต็กเริ่มต้นมีขนาดเล็กกว่านี้ ซึ่งส่งผลให้เกิดข้อผิดพลาดในรันไทม์

เมื่อใดก็ตามที่โปรแกรมรัน ระบบจะต้องระบุหน่วยความจําทางกายภาพจํานวนหนึ่ง พร้อมกับหน่วยความจําทางกายภาพบางส่วนนี้ที่จัดสรรไว้สําหรับสแตก หน่วยความจําสแต็กนี้มักจะถูกใช้เพื่อจัดเก็บค่าของตัวแปรโปรแกรมที่แตกต่างกัน การจัดการระบบปฏิบัติการ การจัดสรรหน่วยความจําแบบสแต็กมีสองวิธี: ขนาดสแตกคงที่หรือขนาดสแตกที่จัดสรรแบบไดนามิก

ในระบบที่มีหน่วยความจําจํานวนมาก (เช่น ระบบที่ทํางานบน Windows NT/95/98/2000 หรือสภาพแวดล้อม UNIX) โดยปกติระบบจะ จัดสรรหน่วยความจําสําหรับสแต็กแบบไดนามิก ดังนั้น คุณไม่จําเป็นต้องระบุจํานวนหน่วยความจําจริงที่มีอยู่ที่จัดสรรให้กับสแตก

อย่างไรก็ตาม ในระบบที่มีหน่วยความจําน้อยกว่า (เช่น DOS หรือโปรเซสเซอร์แบบฝังที่มีหน่วยความจําแอดเดรสได้น้อยกว่า 64K) ระบบปฏิบัติการจะมีพื้นที่หน่วยความจําจํากัดที่จะทํางาน ดังนั้น คุณต้องระบุขนาดของหน่วยความจําจริงที่จัดสรรให้กับสแตก โดยระบุเฉพาะสิ่งที่จําเป็นสําหรับสแต็กเท่านั้น ข้อมูลจําเพาะโดยตรงนี้ช่วยให้คุณสามารถระบุเฉพาะสิ่งที่จําเป็นสําหรับสแต็กเท่านั้นซึ่งจะได้รับ การใช้ประโยชน์สูงสุดจากพื้นที่หน่วยความจําที่จํากัด

การใช้งานแบบ 32 บิตบนพีซีและ UNIX ที่ให้มาของผู้เล่นสามารถจัดสรรหน่วยความจําสแต็กแบบไดนามิกได้ การปรับใช้ 16 บิตบนพีซีของผู้เล่นต้องมีขนาดสแต็กที่ระบุเนื่องจาก DOS 16 บิตและ Windows 3 x ระบบปฏิบัติการไม่สามารถขยายพื้นที่สแต็กของแอปพลิเคชันได้ตามความต้องการ เมื่อทําการพอร์ต Jam STAPL Player หรือ Jam STAPL Byte Code Player ไปยังไมโครโปรเซสเซอร์ที่เฉพาะเจาะจง ให้คอมไพล์โค้ดด้วยการตั้งค่าหน่วยความจําสแตกที่เหมาะสม

ผลิตภัณฑ์ที่เกี่ยวข้อง

บทความนี้จะนำไปใช้กับ 1 ผลิตภัณฑ์

อุปกรณ์ที่ตั้งโปรแกรมได้ Intel®

เนื้อหาในหน้านี้เป็นการผสมผสานระหว่างการแปลเนื้อหาต้นฉบับภาษาอังกฤษโดยมนุษย์และคอมพิวเตอร์ เนื้อหานี้จัดทำขึ้นเพื่อความสะดวกของคุณและเพื่อเป็นข้อมูลทั่วไปเท่านั้นและไม่ควรอ้างอิงว่าสมบูรณ์หรือถูกต้อง หากมีความขัดแย้งใด ๆ ระหว่างเวอร์ชันภาษาอังกฤษของหน้านี้กับคำแปล เวอร์ชันภาษาอังกฤษจะมีผลเหนือกว่าและควบคุม ดูเวอร์ชันภาษาอังกฤษของหน้านี้