ฉันต้องการเรียกใช้ดีบักเกอร์ Visual Studio บนโปรแกรม .Net ที่ถูกทำให้สับสน (เป็นโปรแกรมของฉันเอง - ฉันไม่ได้พยายามถอดรหัสโปรแกรมของคนอื่น)
เมื่อฉันคอมไพล์โปรแกรมด้วย "System.Diagnostics.Debugger.Break()" หรือถ้าฉันแนบดีบักเกอร์เข้ากับกระบวนการที่กำลังทำงานอยู่ ดีบักเกอร์จะแสดงข้อความ "ไม่มีแหล่งที่มา" ฉันเข้าใจสิ่งนี้ - ไม่มีแหล่งที่มาที่สอดคล้องกับเวอร์ชันที่ซับซ้อนของโปรแกรม แต่เมื่อฉันคลิก "แสดงการถอดชิ้นส่วน" มันแสดงหน้าต่างการถอดชิ้นส่วนพร้อมข้อความ "ไม่มีการถอดชิ้นส่วน"
ทำไม ข้อเสนอแนะใด ๆ เกี่ยวกับสิ่งที่ฉันสามารถทำได้เพื่อให้การถอดแยกชิ้นส่วนทำงานได้
ภายใต้ตัวเลือกการแก้ไขข้อบกพร่อง ฉันทำเครื่องหมาย "เปิดใช้งานการแก้ไขข้อบกพร่องระดับที่อยู่" และ "แสดงการแยกส่วนหากไม่มีแหล่งที่มา"
ขอบคุณ.
แก้ไข
เพียงเพื่อพยายามอธิบายเพิ่มเติมอีกเล็กน้อย ...
โปรแกรมที่เป็นปัญหาคือโปรแกรมของฉันเอง และโปรแกรมสร้างความสับสนที่ใช้อยู่ก็เป็นโปรแกรมของฉันเองเช่นกัน โปรแกรม obfuscation รัน ILDAsm.exe แก้ไขโค้ด ILAsm และรัน ILAsm.exe
เห็นได้ชัดว่าความสับสนของฉันทำให้เกิดปัญหา ดังนั้นโปรแกรมจึงทำงานไม่ถูกต้องอีกต่อไป เพื่อให้เข้าใจว่าเหตุใดจึงใช้งานไม่ได้ ฉันต้องการติดตามมัน แต่ด้วยเหตุผลบางอย่างดีบักเกอร์ Visual Studio บอกว่า "ไม่มีการถอดแยกชิ้นส่วน" จากนั้นฉันก็ทำอะไรไม่ได้เลย (เมื่อมีการรันโปรแกรมที่ไม่ซับซ้อนภายใต้ Visual Studio หน้าต่างการแยกส่วนสามารถเปิดได้และแสดงข้อมูลที่คาดหวัง เป็นเพียงเวอร์ชันที่สับสนเท่านั้นที่ก่อให้เกิดปัญหานี้กับดีบักเกอร์ VS)
แก้ไข 2
ไม่สามารถหาคำตอบสำหรับคำถามของฉันได้ แต่ตอนนี้ฉันมีวิธีแก้ปัญหาแล้ว
ฉันได้ติดตั้ง WinDbg แล้วและยืนยันว่าสามารถแนบไปกับโปรแกรมที่สับสนของฉันได้ และอย่างน้อยก็สามารถทำขั้นตอนเดียวและแสดงตำแหน่งการดำเนินการปัจจุบันในหน้าต่างการแยกชิ้นส่วน แต่ฉันไม่เคยใช้ WinDbg มาก่อน และมันก็ดูน่ากังวลนิดหน่อย
ฉันได้ทำตามคำแนะนำที่เห็นหลายแห่งเพื่อโหลด sos.dll ลงใน WinDbg บางทีนั่นอาจจะช่วยได้
แต่ฉันเดาว่าสิ่งที่ฉันจะทำจริง ๆ คือการโยนคำสั่งบันทึกชั่วคราวจำนวนมากลงในโปรแกรมของฉันในบริเวณที่มันใช้งานไม่ได้ และหวังว่าจะได้รับความเข้าใจในลักษณะนั้น