Visual Studio 2010 Ultimate เวอร์ชันมีคุณลักษณะใหม่ IntelliTrace (การติดตามอัจฉริยะ) IntelliTrace ได้รับการแนะนำใน Visual Studio เพื่อเร่งการดีบักแอปพลิเคชัน .NET ของเรา โดยจะติดตามเหตุการณ์ที่ตั้งไว้ล่วงหน้าและวิธีการในระหว่างกระบวนการทำงาน และจะถูกส่งผ่านไปยังผู้ดำเนินการแก้ไขจุดบกพร่องอย่างมีประสิทธิภาพ จึงส่งสถานะและข้อมูลต่างๆ ของโปรแกรมได้อย่างรวดเร็วระหว่างดำเนินการ เพื่อช่วยให้นักพัฒนาแก้ไขจุดบกพร่องของโปรแกรมได้ดีขึ้นและค้นหาปัญหาได้อย่างรวดเร็ว ในความเป็นจริง ก่อน Visual Studio 2010 Microsoft Visual Stuido ได้ช่วยให้เราสืบทอดเครื่องมือการแก้ไขข้อบกพร่องได้เป็นอย่างดี เช่น ตัวแปรการตรวจสอบ การดูสแต็ก ฯลฯ และอนุญาตให้ตั้งค่าจุดพักสำหรับการดีบักขั้นตอนเดียว เป็นต้น ทั้งหมดนี้มีประโยชน์มากสำหรับนักพัฒนาในการทำความเข้าใจสถานะของโปรแกรมในกระบวนการดำเนินการต่างๆ และตรวจสอบว่าโปรแกรมทำงานตามตรรกะจริงล่วงหน้าหรือไม่ และยิ่งไปกว่านั้น เราสามารถค้นหาปัญหาได้โดยการตรวจสอบสถานะของโปรแกรมหลังจากจุดพัก ปัญหานี้คือข้อผิดพลาดเชิงตรรกะบางอย่างอาจเกิดขึ้นก่อนที่จะดำเนินการเบรกพอยต์ และอาจไม่สามารถติดตามได้ นักพัฒนาจะต้องหยุดการดีบักปัจจุบัน รีเซ็ตเบรกพอยต์ และเริ่มการดีบัก และกระบวนการทดลองนี้มักจะใช้เวลาหลายครั้งเพื่อค้นหาตำแหน่งที่ถูกต้องเพื่อตั้งค่าเบรกพอยต์ IntelliTrace ติดตามและแสดงข้อมูลการดีบักและสถานะของโปรแกรมให้กับนักพัฒนาโดยอัตโนมัติอย่างชาญฉลาด ซึ่งช่วยลดความจำเป็นที่โปรแกรมเมอร์จะต้องค้นหาจุดพักที่เหมาะสมเพื่อติดตามและตรวจสอบสถานะการทำงานของโปรแกรม
Visual Studio ให้สองวิธีในการควบคุมแหล่งเนื้อหาของข้อมูลที่รวบรวม วิธีแรกคือเหตุการณ์ IntelliTrace เท่านั้น ซึ่งจะรวบรวมเฉพาะข้อมูลที่เกี่ยวข้องกับเหตุการณ์การติดตามอัจฉริยะและการขัดจังหวะการแก้ไขข้อบกพร่อง อีกวิธีหนึ่งคือเหตุการณ์ IntelliTrace และข้อมูลการโทรซึ่งจะรวบรวมข้อมูลมา นอกเหนือจาก IntelliTrace ข้อมูลต่างๆ เกี่ยวกับการเข้าและออกจากการเรียกเมธอดนอกเหตุการณ์ มาดูวิธีตั้งค่าตัวเลือกการติดตามของ IntelliTrace ใน Visual Studio 2010 กัน
ไปที่เครื่องมือ -> ตัวเลือก -> IntelliTrace โดยค่าเริ่มต้นจะเปิดใช้งาน แต่จะบันทึกเหตุการณ์เท่านั้นเนื่องจากการจับภาพเหตุการณ์มีราคาถูก อย่างไรก็ตาม เมื่อคุณเริ่มติดตามข้อมูลการโทรเหล่านี้ทั้งหมด มูลค่าที่แท้จริงจะเริ่มแสดง ทุกครั้งที่คุณตรวจแก้จุดบกพร่อง IntelliTrace จะปรากฏขึ้น คุณสามารถใช้เครื่องมือแก้ไขจุดบกพร่องในอดีตนี้ได้ในระหว่างการดีบักแบบไดนามิก สมมติว่าฉันอยู่ที่นั่นและฉันมีเบรกพอยต์ แต่ฉันต้องการสำรองข้อมูลและออกแบบเบรกพอยต์นี้ใหม่ ฉันสามารถใช้ IntelliTrace เพื่อทำงานนี้ให้สำเร็จได้
บุคคลอื่นที่บันทึกกระบวนการแก้ไขข้อบกพร่องของตนโดยใช้ IntelliTrace สามารถส่งการบันทึกและไฟล์ .dll และ pdbs ให้กับคุณ และคุณสามารถเล่นซ้ำกระบวนการของพวกเขาได้ กระบวนการอาจเข้าสู่ฐานข้อมูล (คุณไม่มีฐานข้อมูล) อาจถูกตั้งค่าในลักษณะที่คุณไม่สามารถคัดลอกได้ อาจอยู่ในเครือข่ายที่คุณไม่สามารถเข้าถึงได้ แต่คุณไม่มี ไม่ต้องกังวลเพราะคุณมีบันทึกและไฟล์ .dlls และ pdbs ที่คุณสามารถเล่นซ้ำได้
แน่นอนว่า ควรมีซอร์สโค้ดจะดีกว่า เพราะคุณจะเห็นโค้ดเหมือนกับว่าคุณกำลังแก้ไขจุดบกพร่องบนเครื่องของคุณเอง ซึ่งเหมาะสำหรับข้อผิดพลาดลึกลับที่ทำงานได้ดีบนเครื่องของคุณ แต่ไม่ใช่ในเครื่องของผู้อื่น นอกจากนี้ยังเป็นสิ่งที่ดีมากสำหรับสถานการณ์แบบมัลติเธรด และเมื่อคุณดูแอปพลิเคชัน ความผิดพลาดของซอฟต์แวร์จะหายไป แต่เมื่อทำงานด้วยความเร็วปกติ ความผิดพลาดของซอฟต์แวร์จะปรากฏขึ้นอีกครั้ง
ตามค่าเริ่มต้น IntelliTrace จะรวบรวมเฉพาะเหตุการณ์ที่เกี่ยวข้องกับ IntelliTrace เท่านั้น ทั้งนี้เพื่อให้ข้อมูลที่รวบรวมมีน้อยและมีผลกระทบต่อประสิทธิภาพน้อยที่สุด เมื่อคุณเลือกที่จะรวบรวมข้อมูลเกี่ยวกับการเรียกเมธอดด้วย นอกเหนือจากการเพิ่มพื้นที่ที่ข้อมูลที่รวบรวมไว้ชั่วคราวแล้ว ผลกระทบต่อประสิทธิภาพยังมากขึ้นอีกด้วย แม้ว่ารายละเอียดที่รวบรวมจะแตกต่างกันไป แต่ทั้งสองวิธีก็รวบรวมข้อมูลทั่วไปบางอย่าง ตัวอย่างเช่น จะรวบรวมข้อมูลระบบเสมอเมื่อกระบวนการรวบรวมเริ่มต้นขึ้นเป็นครั้งแรก เหตุการณ์การโหลดและยกเลิกการโหลดโมดูล เวลาเริ่มต้นและสิ้นสุดของเธรด เป็นต้น เมื่อเหตุการณ์ของโมดูลและเธรดเกิดขึ้น ข้อมูลหน้าต่างการดีบักของโมดูลและเธรดสามารถปรับปรุงได้อย่างถูกต้อง นอกจากนี้ ในโหมดใดก็ตาม ข้อมูลจะถูกเก็บรวบรวมที่จุดพักการดีบัก และประเภทข้อมูลและออบเจ็กต์พื้นฐานที่รวบรวมไว้จะได้รับการตรวจสอบและตรวจสอบในระหว่างการดีบัก และค่าของข้อมูลเหล่านั้นจะได้รับอนุญาตให้เปลี่ยนแปลงได้
โดยทั่วไปแล้ว ดีบักเกอร์ IntelliTrace ได้รับการออกแบบมาเพื่อนักพัฒนาโปรแกรมโดยเฉพาะ ด้วยฟังก์ชันการดีบักประวัติอันเป็นเอกลักษณ์ ทำให้นักพัฒนามีฟังก์ชันควบคุมกระบวนการตรวจสอบย้อนกลับได้ ตัวอย่างเช่น ฉันควรทำอย่างไรหากมีข้อยกเว้นเกิดขึ้นเมื่อ 10 นาทีที่แล้วในโปรแกรมระหว่างการพัฒนา หากเมื่อก่อนปกติแล้วจะทำได้โดยการเรียกคำสั่ง Debug.Write ด้วยตนเอง ตอนนี้ก็ไม่จำเป็นแล้ว! เนื่องจากฟังก์ชันการดีบักในอดีตในเครื่องมือการพัฒนาจำนวนมากมีความคล้ายคลึงกันมาก ผ่าน IntelliTrace ในเวอร์ชันอย่างเป็นทางการของ VS2010 โปรแกรมเมอร์ไม่เพียงแต่สามารถดูสถานะปัจจุบันของโปรแกรมเท่านั้น แต่ยังตรวจสอบเหตุการณ์ที่สร้างขึ้นภายใต้สถานการณ์บางอย่าง และแม้แต่แยกจุดความล้มเหลวใน ประวัติการสมัคร ดังนั้นหลังจากเปิดใช้งานการดีบักในอดีต VS2010 เวอร์ชันอย่างเป็นทางการสามารถบันทึก call stack และตัวแปรที่เกี่ยวข้องได้ เราสามารถย้อนกลับไป 10 นาทีหรือมากกว่านั้นก่อนที่โปรแกรมจะถูกบันทึกเพื่อตรวจสอบสถานการณ์ต่างๆ เมื่อมีข้อยกเว้นและความล้มเหลวเกิดขึ้นในโปรแกรม เนื่องจากตามค่าเริ่มต้น โปรแกรมจะบันทึกเฉพาะประเภทคีย์ นักพัฒนาจึงสามารถเลือกบันทึกพารามิเตอร์ อ็อบเจ็กต์ และตัวแปรร่วมทั้งหมดได้ ดังนั้น IntelliTrace จะแสดงเหตุการณ์สำคัญในระหว่างการรันโปรแกรม เช่น ข้อยกเว้นโค้ด การเข้าถึงไฟล์ การดีบักแบบเรียลไทม์ ฯลฯ