การดีบักของโปรแกรมบริการ NT
------------ ข้อความที่ตัดตอนมาจากหนังสือคู่มือการพัฒนาแอปพลิเคชัน Delphi 6
มีสองวิธีในการดีบักโปรแกรมบริการ สิ่งแรกคือการกำหนดส่วนการทำงานของบริการในชั้นเรียนแยกต่างหากและแก้ไขข้อบกพร่องในโปรแกรมแยกต่างหาก ประเภทที่สองคือการดีบักเมื่อบริการกำลังทำงานอยู่ วิธีแรกเป็นความคิดที่ดี
เราใช้วิธีแรกในการทดสอบเมื่อสร้างสองโปรแกรม: ServiceApp และ TestMailer (มีอยู่ในซีดีของหนังสือเล่มนี้) เพิ่มส่วนประกอบเดียวกัน tidMessage, TTIMER และ TIDSTMP ลงในโปรแกรมแยกต่างหากและสร้างผู้ส่งจดหมาย เมื่อพบข้อบกพร่องของโปรแกรม TestMailer การแก้ไขทั้งหมดจะได้รับการปรับปรุงเป็นโปรแกรมบริการ การสร้างโต๊ะทำงานหรือทดสอบโปรแกรมนั้นง่าย แต่ไม่เพียงพอเสมอไป
วิธีที่สองในการทดสอบโปรแกรมบริการคือการติดตั้งและเรียกใช้โปรแกรมบริการจากนั้นแนบไปยังกระบวนการเรียกใช้ใน Delphi ทำตามขั้นตอนเหล่านี้เพื่อแก้ไขข้อบกพร่องของโปรแกรม serviceApp.exe ในขณะที่เรียกใช้บริการ
1. เรียกใช้ serviceApp.exe /ติดตั้งบนบรรทัดคำสั่งเพื่อติดตั้งโปรแกรมบริการ
2. SELECT START | ค้นหา MyService และคลิกปุ่มแถบเครื่องมือเริ่มต้น (ขั้นตอนนี้ใช้ได้กับ Windows 2000 ขั้นตอนใน Windows NT4.0 เกือบจะเหมือนกัน)
3. เรียกใช้ Delphi
4. โหลดโครงการ ServiceApp.dpr
5. เลือก Run | แนบกับรายการเมนูกระบวนการใน Delphi
6. ในกล่องโต้ตอบแนบไปยังกระบวนการ (ดังแสดงในรูปด้านล่าง) เลือกช่องทำเครื่องหมายประมวลผลระบบแสดง
7. ค้นหา serviceApp.exe แล้วคลิกปุ่มแนบ
8. ใน Delphi ตั้งค่าเบรกพอยต์บนวิธีการจัดกิจกรรม Onexecute ของไฟล์แหล่งที่มาโครงการและกด F9
รูปที่ B.3 แนบไปยังกล่องโต้ตอบกระบวนการสามารถใช้เพื่อแนบ Delphi ดีบักเกอร์กับกระบวนการทำงาน
Delphi จะแนบดีบักเกอร์เข้ากับโปรแกรมบริการที่รันและเปิดกล่องโต้ตอบ CPU ถ้าคุณไม่ได้อ่านภาษาแอสเซมบลีอย่างราบรื่นมากมุมมอง CPU ก็ไม่มีประโยชน์มากนัก แต่เมื่อโปรแกรมบริการทำงานไปยังจุดพักมันจะหยุดบนเบรกพอยต์และสลับไปที่มุมมองรหัส Delphi หลังจากผู้ใช้ได้รับการควบคุมบริการที่ทำงานผ่าน Delphi บริการสามารถก้าวและดีบักเหมือนโปรแกรมอื่น ๆ
หมายเหตุ: ในฐานะนักพัฒนาคุณควรมีสิทธิ์ผู้ดูแลระบบบนพีซีของคุณ อย่างไม่น่าเชื่อบางองค์กรไว้วางใจรหัสที่เขียนโดยนักพัฒนา แต่ไม่อนุญาตให้พวกเขาจัดการพีซีของตัวเอง สถานการณ์ทางเศรษฐกิจในปัจจุบันยังคงดีดังนั้นหางานใหม่
เอกสารช่วย Delphi กล่าวว่าหากสิทธิ์ไม่เพียงพอการแนบกระบวนการบริการอาจล้มเหลว เมื่อคุณมีสิทธิ์ผู้ดูแลระบบบนพีซีของคุณกระบวนการบริการที่แนบมาจะทำงานได้ดีเสมอ หัวข้อความช่วยเหลือ "บริการดีบัก" มีวิธีที่สามในการดีบักบริการซึ่งเกี่ยวข้องกับการปรับเปลี่ยนการตั้งค่ารีจิสทรีซึ่งคุณสามารถอ้างถึงได้
เจ้าเจิ้งเฉิง
2005-05-22