การดีบัก COM+ ใน Delphi7
รวบรวมและเรียบเรียงโดย Liu Xiaoming (Cipher)
ปัญหาที่ลำบากที่สุดในการพัฒนาระบบแอปพลิเคชัน COM+ คือวิธีการดีบักส่วนประกอบ COM+ เนื่องจาก COM+ ถูกดำเนินการในสภาพแวดล้อมการดำเนินการ COM+ โปรแกรมเมอร์ Delphi ไม่สามารถตั้งค่าเบรกพอยต์บนแอปพลิเคชันเซิร์ฟเวอร์ได้โดยตรงสำหรับการดีบักใน IDE ของ Delphi เช่นเดียวกับระบบแอปพลิเคชันหลายระดับแบบกระจายของ Delphi
ในความเป็นจริง Delphi ยังคงสามารถดีบักส่วนประกอบ COM+ ในสภาพแวดล้อมการพัฒนาแบบรวมของ Delphi หรืออนุญาตให้โปรแกรมเมอร์ตั้งค่าเบรกพอยต์ในหน่วยโปรแกรมของส่วนประกอบ COM+ ในสภาพแวดล้อมการพัฒนาแบบรวม จากนั้นจึงเรียกใช้แอปพลิเคชันไคลเอนต์เพื่อเรียกส่วนประกอบ COM+ ในเวลานี้ Delphi จะนำการควบคุมการดำเนินการมาสู่สภาพแวดล้อมการพัฒนาแบบบูรณาการของ Delphi และหยุดชั่วคราวที่จุดพักที่กำหนดโดยโปรแกรมเมอร์เพื่อให้โปรแกรมเมอร์เริ่มการดีบัก จากนี้ไป โปรแกรมเมอร์สามารถดีบักส่วนประกอบ COM+ ได้เหมือนกับการดีบักแอปพลิเคชันทั่วไป อย่างไรก็ตาม หากต้องการดีบักส่วนประกอบ COM+ ด้วยวิธีนี้ โปรแกรมเมอร์ต้องทำการตั้งค่าบางอย่างก่อน
1. เปิดใช้งานโครงการส่วนประกอบ COM+ ที่จะดีบั๊กในสภาพแวดล้อมการพัฒนาแบบรวมของ Delphi คลิกเมนู PRojects|ตัวเลือก เลือกหน้า Linker ในกล่องโต้ตอบป๊อปอัป และเลือกรวมข้อมูล Td32 และรวมสัญลักษณ์การดีบักระยะไกล
2. คลิกเมนู Run|Install Com+ Objects เพื่อลงทะเบียนส่วนประกอบ COM+ โดยเฉพาะอย่างยิ่งกับแอปพลิเคชันใหม่หรือแอปพลิเคชันที่มีอยู่ (แอปพลิเคชันนี้จะต้องสร้างโดยโปรแกรม COM ที่ลงทะเบียนของ Delphi)
3. เรียกใช้แผงควบคุม Win2000 |. Component Services ค้นหาแอปพลิเคชันที่ลงทะเบียน COM ในแอปพลิเคชัน COM+ คลิกขวา เลือกเมนู "คุณสมบัติ" ในกล่องโต้ตอบป๊อปอัป เลือกหน้า "ขั้นสูง" และเลือกตัวเลือก "Start in debugger" จะมีสิ่งที่คล้ายกับต่อไปนี้ในเส้นทางการดีบักด้านล่าง: "C:/Program Files/Borland/Delphi7/Bin/bordbg70.exe" dllhost.exe /รหัสกระบวนการ:{9CEC476D-83A5-4C2B-AFF1-3E83A147B866}
4. กลับไปที่สภาพแวดล้อมการพัฒนาแบบรวมของ Delphi คลิกเมนู Run|Parameters และในกล่องโต้ตอบ ให้ตั้งค่า Hostapplication เป็น: C:/WINNT/system32/DLLHOST.EXE (ควรตั้งค่าตามสถานการณ์การติดตั้งระบบปฏิบัติการของคุณ) พารามิเตอร์ถูกตั้งค่าเป็น: /ProcessID:{9CEC476D-83A5-4C2B-AFF1-3E83A147B866}; ค่าของ GUID นี้จะต้องสอดคล้องกับค่าแอตทริบิวต์ในบริการคอมโพเนนต์ Win2000 และสามารถคัดลอกได้โดยตรงจากที่นั่น
5. ตั้งค่าเบรกพอยต์และรัน COM ในสภาพแวดล้อมการพัฒนาแบบรวมของ Delphi
6. เรียกใช้โปรแกรมไคลเอนต์ที่เรียก COM นี้ใน Windows (หรือในสภาพแวดล้อม Delphi ที่เพิ่งเปิดใหม่)
ในเวลานี้ คุณจะพบว่า COM ในสภาพแวดล้อมการพัฒนา Delphi หยุดที่จุดพัก และคุณสามารถดำเนินการติดตามและแก้ไขจุดบกพร่องในขั้นตอนเดียวได้