CMemoryState

CMemoryStateไม่มีคลาสพื้นฐาน?

CMemoryStateให้วิธีสะดวกในการตรวจสอบหน่วยความจำรั่วไหลในโปรแกรมของคุณ "หน่วยความจำรั่ว" เกิดขึ้นเมื่อมีการปันส่วนในกอง แต่ไม่ deallocated เมื่อคุณไม่จำเป็นต้องใช้หน่วยความจำสำหรับวัตถุ ในที่สุดการรั่วไหลของหน่วยความจำเช่นสามารถนำข้อผิดพลาดในการออกความจำ มีวิธีหลายวิธีในการจัดสรร และ deallocate หน่วยความจำในโปรแกรมของคุณ:

โปรแกรมการวินิจฉัยของCMemoryStateเพียงช่วยตรวจสอบหน่วยความจำรั่วไหลที่เกิดขึ้นเมื่อมีการจัดสรรหน่วยความจำโดยใช้ตัวดำเนินการใหม่คือ deallocated ใช้ในการลบไม่ สองกลุ่มอื่นของฟังก์ชันการจัดการหน่วยความจำเป็นสำหรับโปรแกรมที่ไม่ใช่ c ++ และผสมเหล่านั้นกับใหม่และลบในโปรแกรมเดียวไม่แนะนำ การเพิ่มเติมโคDEBUG_NEWมาแทนตัวดำเนินการใหม่เมื่อคุณต้องการใช้แฟ้มและติดตามหมายเลขบรรทัดของการปันส่วนของหน่วยความจำ DEBUG_NEWจะใช้เมื่อใดก็ ตามโดยปกติคุณจะใช้ตัวดำเนินการใหม่?

มีวินิจฉัยอื่น ๆ โปรแกรมการวินิจฉัยของCMemoryStateมีเฉพาะในรุ่นการตรวจแก้จุดบกพร่องของโปรแกรมของคุณ ตรวจแก้จุดบกพร่องรุ่นต้องมีค่าคง_DEBUGที่กำหนดไว้?

หากคุณสงสัยว่า โปรแกรมของคุณมีการรั่วไหลของหน่วยความจำ คุณสามารถใช้ฟังก์ชันจุดตรวจสอบผลต่างและDumpStatisticsเพื่อค้นหาความแตกต่างระหว่างสถานะหน่วยความจำ (วัตถุการปันส่วน) ที่สองจุดที่แตกต่างกันในการทำงานของโปรแกรม ข้อมูลนี้จะเป็นประโยชน์ในการกำหนดว่า ฟังก์ชันคือล้างวัตถุทั้งหมดจะจัดสรร?

ถ้าเพียงแต่ทราบว่าที่ imbalance การปันส่วนและการ deallocation เกิดขึ้นไม่ได้เป็นให้ข้อมูลเพียงพอ คุณสามารถใช้ฟังก์ชันDumpAllObjectsSinceเพื่อวัตถุทั้งหมดที่จัดสรรนับตั้งแต่การเรียกก่อนหน้าไปยังจุดตรวจสอบการถ่ายโอนข้อมูล ถ่ายโอนข้อมูลนี้แสดงลำดับของการปันส่วน แฟ้มต้นฉบับ และบรรทัดที่มีการจัดตำแหน่งวัตถุที่ถูกสรร (ถ้าคุณกำลังใช้DEBUG_NEWสำหรับการปันส่วน), และที่มาของวัตถุ อยู่ และขนาด นอกจากนี้DumpAllObjectsSinceยังเรียกฟังก์ชันของแต่ละวัตถุที่ถ่ายโอนเพื่อให้ข้อมูลเกี่ยวกับสถานะปัจจุบัน?

ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีการใช้CMemoryStateและวินิจฉัยอื่น ๆ MFC สนับสนุนการตรวจแก้จุดบกพร่องในVisual c ++ Programmer ของคำแนะนำ?

หมายเหตุnbsp  ประกาศของวัตถุชนิดCMemoryStateและเรียกไปยังฟังก์ชันที่สมาชิกควรจะ bracketed โดย #if defined(_DEBUG)/#endif ไดเรกทีฟฐาน ทำให้เกิดเครื่องมือวินิจฉัยหน่วยความจำจะถูกรวมไว้ในการสร้างโปรแกรมการตรวจแก้จุดบกพร่องเท่านั้น(&N)?

สมาชิกของคลาส|nbsp แผนภูมิของลำดับชั้น(&N)

Index