บริการวินิจฉัย

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

แมโครและฟังก์ชันเหล่านี้จะพร้อมใช้งานสำหรับชั้นเรียนทั้งหมดที่ได้มาจากCObjectในการตรวจแก้จุดบกพร่องและปล่อยรุ่น MFC อย่างไรก็ตาม ทั้งหมดยกเว้นDEBUG_NEWและการตรวจสอบต้องทำอะไรในรุ่นที่วางจำหน่าย?

ในไลบรารี Debug บล็อกหน่วยความจำที่จัดสรรไว้ทั้งหมดคือ bracketed กับชุด "ยามไบต์" ถ้าไบต์เหล่านี้จะไม่สบายใจ โดยการเขียนหน่วยความจำที่ถูกแบล็คลิสต์ แล้วตามปกติการวินิจฉัยสามารถรายงานปัญหา ถ้าคุณรวมบรรทัด

#กำหนดใหม่ DEBUG_NEW

ในแฟ้มของคุณใช้งาน สายทั้งหมดไปที่ใหม่จะจัดเก็บหมายเลขชื่อแฟ้มและบรรทัดการปันส่วนของหน่วยความจำเบียน ฟังก์ชันCMemoryState::DumpAllObjectsSinceจะแสดงข้อมูลพิเศษนี้ การอนุญาตให้คุณระบุหน่วยความจำรั่วไหล นอกจากนี้อ้างถึงคลาCDumpContextสำหรับข้อมูลเพิ่มเติมเกี่ยวกับการแสดงผลการวินิจฉัย?

นอกจากนี้ ในไลบรารีรันไทม์ C ยังสนับสนุนชุดฟังก์ชันการวินิจฉัยที่คุณสามารถใช้แก้จุดบกพร่องของโปรแกรมประยุกต์ของคุณอีกด้วย ดูข้อมูลเพิ่มเติม ตามปกติการตรวจแก้จุดบกพร่องในการอ้างอิงไลบรารีรันไทม์?

MFC ทั่วไปวินิจฉัยแมโคร

อ้าง พิมพ์ข้อความ และ aborts โปรแกรมแล้ว ถ้าระบุนิพจน์ให้เป็น FALSEในรุ่นตรวจแก้จุดบกพร่องของไลบรารี?
ASSERT_KINDOF ทดสอบที่วัตถุเป็นวัตถุ ของคลาสที่ระบุ หรือคลาสที่ได้รับมาจากคลาสที่ระบุ?
ASSERT_VALID ทดสอบความถูกต้องภายในของวัตถุ โดยการเรียกฟังก์ชันของสมาชิกAssertValid โดยทั่วไปจะถูกแทนที่จากCObject?
DEBUG_NEW หน้า ๆ filename และบรรทัดหมายเลขสำหรับการปันส่วนวัตถุทั้งหมดในโหมดดีบักเพื่อค้นหาหน่วยความจำรั่วไหล?
สืบค้นกลับ ให้printf-ต้องการความสามารถในการตรวจแก้จุดบกพร่องรุ่นของไลบรารี?
TRACE0 เหมือนกับการสืบค้นกลับแต่ใช้รูปแบบของสตริงที่ มีไม่มีอาร์กิวเมนต์?
TRACE1 เหมือนกับการสืบค้นกลับแต่ใช้รูปแบบของสตริงที่ มีอาร์กิวเมนต์เดี่ยว?
TRACE2 เหมือนกับการสืบค้นกลับแต่ใช้รูปแบบของสตริงที่ มีอาร์กิวเมนต์ที่สอง?
TRACE3 เหมือนกับการสืบค้นกลับแต่ใช้รูปแบบของสตริงที่ มีอาร์กิวเมนต์ที่สาม?
ตรวจสอบ เช่นเดียวกับASSERTแต่ประเมินค่านิพจน์ในรุ่นที่วางจำหน่ายของไลบรารีเช่นกันเหมือนกับในรุ่น Debug?

ฟังก์ชันและตัวแปรการวินิจฉัยของ MFC ทั่วไป

afxDump ตัวแปรส่วนกลางที่ส่งข้อมูลCDumpContextหน้าต่างผลลัพธ์ดีบักเกอร์ หรือเทอร์มินัลการตรวจแก้จุดบกพร่อง?
afxMemDF ตัวแปรส่วนกลางที่ควบคุมการทำงานของตัวจัดสรรหน่วยความจำดีบัก?
afxTraceEnabled ตัวแปรส่วนกลางที่ใช้ในการเปิดใช้งาน หรือปิดใช้งานการแสดงผลจากแมโครการสืบค้นกลับ?
afxTraceFlags ตัวแปรส่วนกลางที่ใช้เมื่อต้องการเปิดคุณลักษณะการรายงานมีอยู่ภายในของ MFC?
AfxCheckError ตัวแปรส่วนกลางที่ใช้เพื่อทดสอบการส่งผ่าน SCODEเพื่อดู ว่ามีข้อผิดพลาด และ ถ้าเป็นเช่น นั้น ข้อผิดพลาดข้อผิดพลาดที่เหมาะสม?
AfxCheckMemory ตรวจสอบความถูกต้องของทั้งหมดจัดสรรหน่วยความจำในขณะนี้?
AfxDump ถ้าเรียกว่าในขณะที่การดีบักเกอร์ รวมสถานะของวัตถุในขณะที่การดีบัก?
AfxDumpStack สร้างภาพของกองซ้อนปัจจุบัน ฟังก์ชันนี้เชื่อมโยงเสมอคอน?
AfxEnableMemoryTracking เปิดใช้งานหน่วยความจำในการติดตาม และปิด?
AfxIsMemoryBlock ตรวจสอบว่า บล็อกหน่วยความจำได้ถูกกำหนดอย่างถูกต้องไว้?
AfxIsValidAddress ตรวจสอบว่า เป็นช่วงที่อยู่หน่วยความจำภายในขอบเขตของโปรแกรม?
AfxIsValidString กำหนดว่า ตัวชี้ในสายอักขระไม่ถูกต้อง?
AfxSetAllocHook ทำให้การโทรของฟังก์ชันในการจัดสรรหน่วยความจำแต่ละ?

ฟังก์ชันการวินิจฉัยวัตถุ MFC

AfxDoForAllClasses ดำเนินการฟังก์ชันที่ระบุบนทั้งหมดCObject-มาเรียนที่สนับสนุนการตรวจสอบชนิดของเวลาทำงาน?
AfxDoForAllObjects ดำเนินการฟังก์ชันที่ระบุบนทั้งหมดCObject-มาวัตถุที่ถูกจัดสรรกับใหม่?

Index