การดีบักช่วยให้นักพัฒนาสามารถดูทีละขั้นตอนว่าโค้ดทำงานอย่างไร ค่าของตัวแปรเปลี่ยนแปลงอย่างไร การสร้างและทำลายออบเจ็กต์อย่างไร ฯลฯ
เมื่อมีการเรียกใช้เว็บเพจเป็นครั้งแรก Visual Studio จะแสดงกล่องพร้อมท์ถามว่าจำเป็นต้องเปิดใช้งานการดีบักหรือไม่:
เมื่อเปิดใช้งานการดีบัก บรรทัดโค้ดต่อไปนี้จะปรากฏในไฟล์ web.config:
<system.web> <compilation debug="true"> <assemblies> ............ </assemblies> </compilation> </system.web>
แถบเครื่องมือการดีบักจะมีเครื่องมือทั้งหมดที่จำเป็นสำหรับการดีบัก:
เบรกพอยต์ระบุว่าโปรแกรมควรหยุดทำงานทันทีหลังจากรันบรรทัดโค้ดที่ระบุในระหว่างรันไทม์ เพื่อให้สามารถทดสอบโค้ดและงานแก้ไขจุดบกพร่องต่างๆ สามารถเสร็จสิ้นได้ เช่น การสังเกตการเปลี่ยนแปลงในค่าตัวแปร การดีบักโค้ดขั้นตอนเดียว และ ข้ามไปยังวิธีการทำงาน เข้าและออก ฯลฯ ตั้งค่าเบรกพอยต์โดยคลิกขวาที่โค้ดแล้วเลือกแทรกเบรกพอยต์ จากนั้นจุดสีแดงจะปรากฏขึ้นทางด้านซ้ายและบรรทัดของโค้ดจะถูกเน้นดังแสดงในรูป:
หลังจากที่คุณเรียกใช้โค้ดนี้ คุณจะสังเกตลักษณะการทำงานของเบรกพอยต์
ในขั้นตอนนี้ คุณสามารถก้าวผ่านโค้ดและสังเกตกระบวนการทำงานและค่าตัวแปร คุณสมบัติ วัตถุ ฯลฯ
หากคุณต้องการแก้ไขคุณสมบัติเบรกพอยต์ คุณสามารถคลิกขวาที่เครื่องหมายเบรกพอยต์และค้นหาได้ในเมนู "คุณสมบัติ":
กล่องโต้ตอบตำแหน่งจะแสดงตำแหน่งของไฟล์ รวมถึงจำนวนบรรทัดและอักขระของโค้ดที่เลือก เมนูเงื่อนไขช่วยให้คุณสามารถป้อนนิพจน์ที่ถูกต้องเพื่อประเมินว่าโปรแกรมถึงจุดพักแล้วหรือไม่:
เมนูจำนวนการเข้าชมจะแสดงกล่องโต้ตอบที่แสดงจำนวนครั้งที่เบรกพอยต์ถูกโจมตี
การคลิกที่ตัวเลือกใดๆ ในเมนูแบบเลื่อนลงจะเป็นการเปิดช่องแก้ไขเพื่อป้อนจำนวน Hit สิ่งนี้มีประโยชน์เมื่อวิเคราะห์โค้ดด้วยโครงสร้างลูป
เมนูตัวกรองช่วยให้คุณสามารถตั้งค่าตัวกรองสำหรับกลไก กระบวนการ เธรด หรือการรวมกันใดๆ เพื่อใช้เบรกพอยท์ได้
เมนูเมื่อ Hit ช่วยให้คุณสามารถระบุการดำเนินการเมื่อมีการโจมตีเบรกพอยต์
Visual Studio มีหน้าต่างดีบักต่อไปนี้ ซึ่งแต่ละหน้าต่างจะแสดงข้อมูลโปรแกรมบางอย่าง ตารางต่อไปนี้แสดงรายการบางหน้าต่าง:
หน้าต่าง | อธิบาย |
---|---|
โดยตรง | แสดงตัวแปรและนิพจน์ |
อัตโนมัติ | แสดงตัวแปรปัจจุบันทั้งหมดและสถานะก่อนหน้า |
ท้องถิ่น | แสดงตัวแปรทั้งหมดของบริบทปัจจุบัน |
สังเกต | แสดงตัวแปรจากคอลเลกชันที่แตกต่างกันสูงสุดสี่ชุด |
โทรสแต็ค | แสดงวิธีการทั้งหมดใน call stack |
ด้าย | แสดงและควบคุมเธรด |