คำถามติดแท็ก delphi-2009

8
EProgrammerNotFound ข้อยกเว้นใน Delphi?
ใน Delphi 2009 SysUtils.pas มีสิ่งนี้ในบรรทัดที่ 425: EProgrammerNotFound = class(Exception); นี่เป็นแค่ไข่อีสเตอร์หรืออะไรที่ร้ายแรง? ข้อยกเว้นนี้ควรจะเพิ่มขึ้นเมื่อใด มันมีอยู่ใน Delphi Prism และ / หรือ Free Pascal ด้วยหรือไม่? ถาม: คลาสข้อยกเว้นนี้ยังคงประกาศอยู่ใน Delphi (ปัจจุบันคือ XE7) หรือไม่ ตอบ: ใช่และเป็นเอกสารด้วยซ้ำ! วิธีที่ไม่เป็นมาตรฐานในการระบุข้อบกพร่องของซอฟต์แวร์ คุณสามารถใช้ EProgrammerNotFound เป็นทางเลือกในการระบุข้อบกพร่องของซอฟต์แวร์ที่ตรวจพบในขณะทำงาน

1
มีวิธีที่จะบอกได้โดยทางโปรแกรมหรือไม่ว่า FastMM บล็อกหน่วยความจำบางส่วนไม่ได้เป็นอิสระหรือไม่?
ฉันกำลังพยายามตรวจสอบว่าบล็อกหน่วยความจำไม่ได้รับการปลดปล่อยหรือไม่ แน่นอนผู้จัดการบอกฉันโดยใช้กล่องโต้ตอบหรือไฟล์บันทึก แต่ถ้าฉันต้องการเก็บผลลัพธ์ในฐานข้อมูลล่ะ? ตัวอย่างเช่นฉันต้องการมีชื่อของรูทีนในตารางฐานข้อมูลที่จัดสรรบล็อกที่กำหนดไว้ในตารางฐานข้อมูล หลังจากอ่านเอกสารของ FastMM ฉันรู้ว่าตั้งแต่เวอร์ชัน 4.98 เรามีความเป็นไปได้ที่จะได้รับแจ้งจากผู้จัดการเกี่ยวกับการจัดสรรหน่วยความจำอิสระและการจัดสรรใหม่เมื่อเกิดขึ้น ตัวอย่างเช่นOnDebugFreeMemFinishเหตุการณ์ที่ส่งถึงเราPFullDebugBlockHeaderซึ่งมีข้อมูลที่เป็นประโยชน์ มีสิ่งหนึ่งที่PFullDebugBlockHeaderขาดหายไป - ข้อมูลหากแอปพลิเคชันเป็นอิสระจากบล็อกที่ระบุ เว้นแต่OnDebugFreeMemFinishจะถูกเรียกเฉพาะสำหรับบล็อกที่ไม่เป็นอิสระ? นี่คือสิ่งที่ฉันไม่ทราบและต้องการค้นหา ปัญหาคือแม้แต่การเชื่อมต่อในOnDebugFreeMemFinishกรณีที่ฉันไม่สามารถค้นหาได้ว่าบล็อกนั้นเป็นอิสระหรือไม่ นี่คือตัวอย่าง: program MemLeakTest; {$APPTYPE CONSOLE} uses FastMM4, ExceptionLog, SysUtils; procedure MemFreeEvent(APHeaderFreedBlock: PFullDebugBlockHeader; AResult: Integer); begin //This is executed at the end, but how should I know that this block should be freed //by application? …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.