ฉันมีปัญหาประเภท "Schroedinger's Cat" ที่นี่ - โปรแกรมของฉัน (จริงๆแล้วเป็นชุดทดสอบสำหรับโปรแกรมของฉัน แต่โปรแกรมของฉัน) ขัดข้อง แต่เฉพาะเมื่อสร้างในโหมดรีลีสและเมื่อเรียกใช้จากบรรทัดคำสั่งเท่านั้น . ด้วยการดีบักของมนุษย์ถ้ำ (เช่นข้อความ printf () ที่น่ารังเกียจทั่วทุกที่) ฉันได้กำหนดวิธีการทดสอบที่โค้ดขัดข้องแม้ว่าจะเกิดข้อผิดพลาดจริงในตัวทำลายบางตัวเนื่องจากข้อความติดตามล่าสุดที่ฉันเห็นอยู่ใน ผู้ทำลายล้างอื่น ๆ ที่ดำเนินการอย่างหมดจด
เมื่อฉันพยายามเรียกใช้โปรแกรมนี้ภายใน Visual Studio มันไม่ผิดพลาด เช่นเดียวกันเมื่อเปิดตัวจาก WinDbg.exe ข้อขัดข้องจะเกิดขึ้นเมื่อเรียกใช้งานจากบรรทัดคำสั่งเท่านั้น สิ่งนี้เกิดขึ้นภายใต้ Windows Vista btw และน่าเสียดายที่ฉันไม่สามารถเข้าถึงเครื่อง XP ได้ในขณะนี้เพื่อทดสอบ
มันจะดีมากถ้าฉันสามารถให้ Windows พิมพ์สแต็กแทร็กหรืออย่างอื่นที่ไม่ใช่แค่การยุติโปรแกรมราวกับว่ามันออกอย่างหมดจด ใครมีคำแนะนำเกี่ยวกับวิธีการรับข้อมูลที่มีความหมายเพิ่มเติมที่นี่และหวังว่าจะแก้ไขข้อบกพร่องนี้ได้หรือไม่?
แก้ไข: ปัญหาเกิดจากอาร์เรย์นอกขอบเขตซึ่งฉันอธิบายเพิ่มเติมในโพสต์นี้ ขอบคุณทุกคนสำหรับความช่วยเหลือในการค้นหาปัญหานี้!