ฉันจะแก้ไข“ เบรกพอยต์จะไม่ถูกตีในขณะนี้ได้อย่างไร ไม่มีการโหลดสัญลักษณ์สำหรับเอกสารนี้” คำเตือน?


1574

แอปพลิเคชัน C # เดสก์ท็อปในรุ่นด่วนทำงานแล้วไม่ทำงาน 5 วินาทีในภายหลัง

ฉันพยายามต่อไปนี้:

  • ตรวจสอบให้แน่ใจว่าการกำหนดค่าการดีบักการตั้งค่าการตรวจแก้จุดบกพร่องและข้อมูลการตรวจแก้จุดบกพร่องแบบเต็มจะถูกตั้งค่าบนชุดประกอบทั้งหมด
  • ลบโฟลเดอร์ bin และ obj ทั้งหมดและ DLLs ทั้งหมดที่เกี่ยวข้องกับโครงการจากเครื่องทั้งหมดของฉัน
  • สร้างโครงการใหม่ที่ทำให้เกิดปัญหาตั้งแต่เริ่มต้น
  • Reboot

ฉันมี WinForms สองโครงการในโซลูชัน หนึ่งในนั้นโหลดข้อมูลการดีบัก พวกเขาทั้งคู่อ้างถึงแอสเซมบลีฉันกำลังพยายามรับข้อมูลการตรวจแก้จุดบกพร่องในลักษณะเดียวกันในไฟล์โครงการ ความคิดใด ๆ


ฉันต้องการเพิ่มที่นี่ส่วนใหญ่สำหรับตัวเองเมื่อฉันกลับมาเพื่อทบทวนคำถามนี้สัญลักษณ์ที่ไม่ได้โหลดจนกว่าจะโหลดแอสเซมบลีและแอสเซมบลีไม่ได้โหลดจนกว่าจะจำเป็น หากเบรกพอยต์อยู่ในไลบรารีที่ใช้ในฟังก์ชันเดียวในแอสเซมบลีหลักของคุณเท่านั้นสัญลักษณ์จะไม่ถูกโหลด (และจะแสดงเบรกพอยต์ว่าไม่ได้ถูกตี) จนกว่าจะเรียกใช้ฟังก์ชันนั้น


119
เมื่อทำการดีบั๊กกลับไปที่มุมมองดีบั๊ก, Windows, โมดูล สิ่งนี้จะแสดงข้อมูลเกี่ยวกับโมดูลที่โหลดและสถานะสัญลักษณ์ คุณสามารถคลิกขวาที่โมดูลและลองโหลดสัญลักษณ์จากตำแหน่งอื่น
Polyfun

14
รุ่นด่วนไม่มีมุมมองโมดูล
อินสแตนซ์ฮันเตอร์

12
จุดที่ดีเกี่ยวกับการประกอบไม่ได้โหลดจนกว่าจะมีความจำเป็น ตัวดีบั๊กจะแสดงว่าเบรกพอยต์จะไม่ถูกกระทบ แต่หน้าจอจะเปลี่ยน / เบรกพอยต์ของคุณจะถูกตีเมื่อแอสเซมบลีถูกโหลด วิธีแก้ปัญหาวิเศษนี้ปัญหา UI จะเป็นการเรียกไปยังแอสเซมบลีที่เริ่มต้นโปรแกรมเพื่อบังคับให้แอสเซมบลีที่จะโหลด
Tim Coker

1
ฉันมีปัญหาเดียวกันและฉันสังเกตเห็นว่าสำหรับการกำหนดค่าการสร้างนี้ฉันไม่ได้<DebugSymbols>true</DebugSymbols>อยู่ภายใต้ VS2015 ฉันเพิ่มมันด้วยตนเองและทำงานได้ดี
kuskmen

4
การลบไฟล์. suo อาจช่วยแก้ไขปัญหาที่น่าเกลียดนี้ในโครงการของฉัน
Roland

คำตอบ:


1083

เริ่มแก้จุดบกพร่องอย่างเร็วที่สุดเท่าที่คุณได้มาถึงจุดพักหรือใช้การใช้งานDebug > Break All Debug > Windows > Modulesคุณจะเห็นรายการชุดประกอบทั้งหมดที่โหลดเข้ากระบวนการ ค้นหาสิ่งที่คุณต้องการรับข้อมูลการดีบัก คลิกขวาและเลือก Symbol Load Information คุณจะได้รับกล่องโต้ตอบที่แสดงรายการไดเรกทอรีทั้งหมดที่ค้นหาไฟล์. pdb สำหรับชุดประกอบ ตรวจสอบรายการนั้นเทียบกับตำแหน่ง. pdb จริง ตรวจสอบว่าไม่ได้หาของเก่า

ในโครงการปกติแอสเซมบลีและแฟ้ม. pdb ควรถูกคัดลอกโดย IDE ในโฟลเดอร์เดียวกันกับ. exe ของคุณ โฟลเดอร์ bin \ Debug ของโครงการของคุณ ตรวจสอบให้แน่ใจว่าคุณลบออกจาก GAC หากคุณได้เล่นกับมัน


4
อย่างมีประสิทธิภาพนั่นคือปัญหาในกรณีของฉัน เรามี postcompile ที่ไม่ถือว่าเป็น 'รหัสผู้ใช้' ... ตอนนี้ฉันต้องดูว่าเกิดอะไรขึ้น แต่ฉันยืนยันว่าไม่มีการแก้ไข postcompile สัญลักษณ์จะถูกโหลด @ ฮันขอบคุณคุณช่วยฉันสักครู่ดี! ส่งเบียร์เสมือนจริง
eglasius

29
คำถามเกี่ยวกับรุ่นด่วนซึ่งคำตอบนี้ใช้ไม่ได้โชคไม่ดี จริงๆแล้วคำตอบไม่ได้ผลสำหรับฉันฉันก็ลองลบโฟลเดอร์ Debug ออกและสร้างใหม่
Nicolas Raoul

3
Microsoft Visual Studio Express 2013 สำหรับเว็บไม่มีตัวเลือก Debug Windows Modules วิธีใช้แก้ไขในกรณีนี้คืออะไร?
Andrus

3
ตามคำแนะนำให้เปิดข้อยกเว้นของคุณเพื่อให้มันหยุดในตำแหน่งที่คุณต้องการ (ถ้าคุณไม่สามารถใส่จุดพักในช่วงเริ่มต้นของกระบวนการ) ... ... จากนั้นคุณทำตามขั้นตอนที่ Debug> Windows> โมดูลแนะนำ ค้นหาโครงการที่คุณพยายามก้าวเข้าไปและดูที่ PATH ถ้ามันพูดว่า "C: \ windows \ ชุมนุม" แล้วชี้ไปยัง dll GAC และ NOT โครงการ ...
แอนดี้อันตรายแก็ก

5
ฉันมีการกำหนดค่าโซลูชันที่แอคทีฟของโซลูชันตั้งค่าเป็นรีลีสเปลี่ยนเป็น Debug เพื่อแก้ปัญหาของฉัน คำตอบนี้ช่วยให้ฉัน "จำ" สิ่งที่มองหา
Gilad

436

ก่อนอื่นให้ลองสร้างโครงการของคุณใหม่โดยคลิกขวาที่โครงการ> สร้างใหม่หากไม่ได้ผลให้ลองล้างโครงการ (คลิกเมาส์ขวาที่โครงการ> ล้าง)

หากไม่ได้ผลให้ตรวจสอบสิ่งนี้:

  1. คลิกเมาส์ขวาที่โครงการของคุณ
  2. เลือก[คุณสมบัติ]
  3. เลือกแท็บ[Build]
  4. ตรวจสอบให้แน่ใจ[กำหนด DEBUG คงที่]และ[กำหนด TRACE คงที่]มีการตรวจสอบ
  5. ตรวจสอบให้แน่ใจ[เพิ่มประสิทธิภาพรหัส]ไม่ได้ถูกเลือก
  6. คลิกปุ่ม[ขั้นสูง]ที่ด้านล่างของแท็บสร้าง
  7. ตรวจสอบว่า[Debug Info:]ถูกตั้งค่าเป็น[เต็ม]
  8. คลิก[ตกลง] และสร้างโครงการใหม่ ;-)

(ขั้นตอนที่ 6 สร้างไฟล์. pdb ซึ่งเป็นสัญลักษณ์การดีบัก)


40
ตรวจสอบว่า [Debug Info:] ถูกตั้งค่าเป็น [เต็ม] - แก้ไขให้ฉัน! ฉันมีการกำหนดค่าหลายรายการในโครงการของฉันรายการใหม่ที่ฉันเพิ่มไม่มีชุดนี้
Chiefy

1
สิ่งนี้ได้ผลสำหรับฉัน! แต่แทนที่จะ [เต็ม] ฉันสามารถทำ pdb-only
Aaron Shaver

42
ปรากฎว่าฉันอยู่ในรุ่นที่วางจำหน่าย TSK
PNDA

2
หากคุณมีโปรเจ็กต์ C ++ / C # แบบผสมพร้อมการเริ่มต้นแบบเนทีฟตรวจสอบให้แน่ใจว่าเป็นโปรเจ็กต์การดีบัก> ชนิดดีบักเกอร์ผสมกัน
Bill Hoag

4
ฉันยังมีเพื่อให้แน่ใจว่าProperties > Build > Optimize codeเป็นไม่ได้ตรวจสอบ
jeffaudio

272

ลองทำอะไรง่าย ๆ คุณอาจลองไปแล้ว คลิกขวาที่โซลูชั่นในการแก้ปัญหา Explorer คลิก"การแก้ปัญหาที่สะอาด" นี้จะลบไฟล์ทั้งหมดที่รวบรวมและชั่วคราวที่เชื่อมโยงกับการแก้ปัญหา

สร้างโซลูชันขึ้นมาใหม่และลองดีบักอีกครั้ง

ฉันยังมีปัญหากับจุดพักหลายโครงการในการแก้ปัญหา - บางรวบรวมเป็น x86 บางส่วนเป็น x64


5
คุณแก้ไขจุดพักพร้อมหลายโครงการในโซลูชันได้อย่างไร - บางคอมไพล์เป็น x86, บางส่วนเป็น x64
Richard Li

3
หากคุณใช้ IISExpress (หรือ Azure emulator) ไฟล์ใน C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporary ASP.NET Files \ root อาจไม่ได้รับการอัปเดตหาก AssemblyVersion ของคุณเป็น 1.0.0.0 ตรวจสอบให้แน่ใจว่ามีบางอย่างเช่น 1.0. * เพื่อให้มีการสร้างเวอร์ชันใหม่ทุกครั้งที่คุณสร้างโครงการเว็บของคุณ วิธีแก้ไขปัญหาใหม่ไม่ได้ล้างโฟลเดอร์แฟ้มอินเทอร์เน็ตชั่วคราว
Michael Lang

1
สิ่งนี้ทำเช่นเดียวกับการสร้างใหม่ทั้งหมด
โจนาธานวู้ด

2
@ โจนาธานวู้ด - ฉันเห็นด้วยเป็นส่วนใหญ่ แต่ในสถานการณ์ที่หายากได้การสร้างใหม่ทั้งหมดสามารถให้ผลลัพธ์ที่แตกต่างกันเล็กน้อย - ฉันรู้ว่าฉันเคยเห็นความแตกต่างที่แปลกประหลาดตลอดเวลา ดูที่นี่สำหรับการสนทนาที่น่าสนใจ: stackoverflow.com/questions/1247457/…
Patrick

1
สำหรับฉันมันเป็นเพียง "สร้าง" ... "วิธีแก้ปัญหาที่สะอาด"
โดมินิค Isaia

238

ปิดการใช้งานตัวเลือก "Just My Code" ในการตั้งค่า Debug / General


2
ใช่ในโครงการ Windows Phone 8 ที่มีการกำหนดค่าบิวด์แบบกำหนดเองนี่คือสิ่งที่ฉันทำ
GONeale

2
ทำงานให้ฉันด้วย Windows Phone 8.1 และ VS Community 2015
Fabiano Araujo

20
เพื่อให้ชัดเจน: ในปี 2560 การตั้งค่านี้มีเฉพาะในกล่องโต้ตอบเครื่องมือตัวเลือกภายใต้การดีบั๊กบานหน้าต่างทั่วไป (ไม่มีบานหน้าต่าง "ดีบั๊ก" เพื่อความถูกต้อง) ช่องทำเครื่องหมายเรียกว่า "เปิดใช้งาน Just My Code" ไม่ใช่ "Just My Code"
Jazimov

1
สิ่งนี้ใช้งานได้สำหรับฉัน แต่ฉันไม่เห็นค่าตัวแปรเมื่อโฮเวอร์หรือ Shift + f9 ได้รับข้อผิดพลาดไม่สามารถรับค่าของโลคัลหรืออาร์กิวเมนต์เนื่องจากไม่สามารถใช้งานได้ที่ตัวชี้คำแนะนำนี้อาจเป็นเพราะได้รับการปรับปรุงให้ดีที่สุด
Naveen Kumar

1
ยังคงทำงานใน Visual Studio 2019!
Toby

148

ข้ามการโพสต์การแก้ไขนี้จากHans Kที่ฉันพบในเธรดที่คล้ายกัน>> ที่นี่ << :

คลิกขวาที่โซลูชัน -> คุณสมบัติ

ดูภายใต้คุณสมบัติทั่วไป -> โครงการเริ่มต้น

เลือกหลายโครงการเริ่มต้น

เลือกเริ่มการดำเนินการในโครงการที่คุณต้องการตรวจแก้จุดบกพร่อง


7
สิ่งนี้ยังจัดการสถานการณ์ที่คุณพยายามดีบักโครงการ WEB ที่เป็นปลายทางการควบคุมระยะไกล. NET ที่ทำงานบนเซิร์ฟเวอร์การพัฒนา VS และแสดง "ไม่มีสัญลักษณ์โหลด"
D-Sect

1
สิ่งนี้แก้ไขได้สำหรับฉัน ฉันคิดว่าก่อนหน้านี้บางคนเคยพยายามแนบการดีบักกับเซิร์ฟเวอร์ IIS ในเครื่องแทนที่จะเป็นรุ่นดีบักของ IIS ที่ Visual Studio ใช้
Dowler

1
หากคุณลบไฟล์. suo คุณอาจสูญเสียการตั้งค่าโซลูชันที่เลือกไว้ที่นี่และจะต้องตั้งค่าอีกครั้ง
แลก 1

ฉันตรวจสอบการตั้งค่าเหล่านี้อีกครั้งในวันนี้หลังจากการดีบักก่อนหน้านี้ประสบความสำเร็จและพบว่าโครงการเริ่มต้นของฉันกลับไปเป็นโครงการเริ่มต้นได้ มันคุ้มค่าที่จะตรวจสอบซ้ำ
Anthony De Souza

64

คำตอบที่เลือกทำให้ฉันแก้ไขปัญหาได้ แต่ฉันต้องทำบางสิ่งเพิ่มเติม:

แม้ว่าจะมีการเลือก "ดีบั๊ก" ในเมนูแบบเลื่อนลง:

ป้อนคำอธิบายรูปภาพที่นี่

และในคุณสมบัติโครงการ> สร้าง:

ป้อนคำอธิบายรูปภาพที่นี่

Visual Studio ไม่ได้โหลดสัญลักษณ์ไปยังโครงการเฉพาะ ดังนั้นในเมนูแบบเลื่อนลงฉันเลือก "เครื่องมือจัดการการกำหนดค่า" และเห็นว่าการตั้งค่าสำหรับโครงการเว็บของฉันไม่ถูกต้อง:

ป้อนคำอธิบายรูปภาพที่นี่

ป้อนคำอธิบายรูปภาพที่นี่

จากนั้นฉันจะตั้งค่าให้เป็น "Debug" และเริ่มสร้าง.pdbไฟล์ แต่ฉันต้องคัดลอก PDB และ DLL ด้วยตนเองและใส่ในโฟลเดอร์ที่ VS กำลังมองหา (นี่คือที่ที่คำตอบที่เลือกช่วยฉัน):

ป้อนคำอธิบายรูปภาพที่นี่


1
ฉันกำลังทำงานในreleaseโหมด ขอบคุณ !!
Dipak Telangre

ที่สำคัญสำหรับฉันคือกล่อง 'การปรับใช้' ไม่ได้ถูกตรวจสอบดังนั้น pdb จึงไม่ได้ถูกนำไปใช้งานอีกครั้งหลังจากการสร้าง
Ben

43

Debug> Windows> Modulesเพื่อดูสิ่งที่โมดูลถูกโหลดทำให้ฉันอยู่ในทิศทางที่ถูกต้อง

ในกรณีของฉัน IIS Express ดูเหมือนจะโหลด DLL ที่แตกต่างจากไฟล์ ASP.NET ชั่วคราว

การแก้ไขปัญหา?

  1. เรียกดู C:\Users\<YOUR USER>\AppData\Local\Temp\Temporary ASP.NET Files\vs
  2. ลบทุกอย่างในไดเรกทอรีนี้!

นี่เป็นปัญหาของฉันโฟลเดอร์ต้องเต็มไปด้วย DLL ที่เสียหายซึ่งถูกโหลดตามความต้องการ
gburton

8
สิ่งนี้ใช้งานได้สำหรับฉันยกเว้นในกรณีของฉันไดเรกทอรีที่ฉันต้องกำจัดคือ C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporary ASP.NET Files \ vs \
Andy

ฉันมีปัญหาที่คล้ายกันซึ่งฉันติดตั้งแอปพลิเคชั่นนี้แล้วและมันกำลังโหลด DLL นั้นแทนที่จะเป็นแอพพลิเคชั่นที่ไม่มีไฟล์ PDB ที่เกี่ยวข้อง หลังจากถอนการติดตั้งแอปเก่าปัญหาได้รับการแก้ไขแล้วสำหรับฉัน ขอบคุณ!
Lenny K

42

ฉันสามารถแก้ไขข้อผิดพลาดได้โดยเพียงแค่ตั้งค่าตัวเลือกใน 'แนบกับกระบวนการ' เป็น 'กำหนดประเภทของรหัสที่จะตรวจแก้จุดบกพร่อง' โดยอัตโนมัติตามที่แสดงในภาพหน้าจอที่แนบมา

เพียงทำตามขั้นตอนด้านล่าง:

  • ไปที่Debugจากแถบเมนู
  • คลิกที่แนบกับกระบวนการ
  • ใกล้ตัวเลือกAttach to ให้คลิกที่ปุ่มSelect
  • เลือกประเภทรหัสจะปรากฏหน้าต่าง
  • ตอนนี้เลือกตัวเลือกกำหนดประเภทของรหัสที่จะทำการดีบั๊กโดยอัตโนมัติและคลิกปุ่มตกลง

แก้ไขข้อผิดพลาดการดีบัก


10
สำหรับคนอื่น ๆ ที่พยายามทุกอย่างในหน้านี้ฉันแก้ไขปัญหาของฉันโดยเปลี่ยนเป็นรหัส 'จัดการ (v4.5, v4.0)'!
stevekrzysiak

การสลับไปใช้ "Managed (v4.5, v4.0)" แก้ไขให้ฉันด้วยเช่นกันด้วยการดีบักแอป DNN ASP.Net ขอบคุณ!
อืม

การสลับจาก "กำหนดประเภทของรหัสเป็นการดีบั๊กโดยอัตโนมัติ" เป็น "จัดการ (v4.6, v4.5, v4.0)" เหมาะสำหรับฉัน ฉันมีวิธีแก้ปัญหาด้วยไลบรารี 2 คลาสหนึ่งสามารถเข้าถึง COM ได้ทั้งคู่กำลังกำหนดกรอบงาน 4.6.1
Jorb

ฉันเลือกตัวเลือกผิด (". NET Core" แทนที่จะเป็น "Managed v4.6") ฉันเลือก "กำหนดอัตโนมัติ ... " และใช้งานได้! ตอนแรกผมพบวิธีแก้ปัญหานี้ในที่โพสต์บล็อกblog.simontest.net/...
Evgeni Nabokov

41

บางครั้งแม้ว่ามันจะทำให้คุณมีข้อผิดพลาดนี้ แต่breakpointก็ยังได้รับการตีดังนั้นเพียงแค่ละเว้นข้อผิดพลาด นี้เกิดขึ้นค่อนข้างบ่อยในของViewsMVC web app


7
สิ่งนี้ควรได้รับการผลักดันให้บางที่ขึ้นไปด้านบน ฉันใช้เวลามากมายในการทำคำตอบทั้งหมดข้างต้น แต่เบรกพอยต์จะได้รับผลกระทบ เพียงตรวจสอบ :) นอกจากนี้นั่นคือแอพเดสก์ท็อป WPF
Bartosz

4
aspx ดูเหมือนว่าจะรวบรวมตามความต้องการดังนั้นข้อมูลการดีบักจะใช้ได้เฉพาะหลังจากที่จำเป็นต้องมีหน้า aspx
aeroson

นอกจากนี้สำหรับการทดสอบหน่วย - คุณต้องรอสองสามวินาทีก่อนจะได้รับผลกระทบ
David Refaeli

ฉันคิดว่าความคิดเห็น @ aeroson เป็นสิ่งที่ฉันวิ่งเข้าไป เบรกพอยต์โหลดหน้าเดียวอีกหน้าไม่ได้ พยายามทุกสิ่งจากคำตอบที่นี่แล้วรีเฟรชหน้านั้นและจุดพักโหลด
goodeye

ขอบคุณ ... ขุดประมาณครึ่งชั่วโมงและเพิ่งรู้ว่าเบรกพอยต์ยังคงได้รับผลกระทบ ...
Kyle Huang

39

ตรวจสอบว่าไฟล์. pbd ของคุณขาดหายไปในโฟลเดอร์ bin / Debug หากเป็นเช่นนั้นให้ไปที่ "คุณสมบัติ" ของโครงการของคุณเลือก "สร้าง" แล้วเลือก "ขั้นสูง" ที่ด้านล่าง เลือก "เต็ม" ภายใต้ "ข้อมูลการแก้ปัญหา" ในหน้าต่างใหม่ที่ปรากฏขึ้น นี่คือปัญหาของฉันและแก้ไขให้ฉัน

แสดงตำแหน่งที่จะค้นหาการตั้งค่า


ฉันขอแนะนำให้ทุกคนที่มาที่หน้านี้เพื่อให้แน่ใจว่า pdb กำลังถูกสร้างขึ้นเนื่องจากนี่เป็นปัญหาสำหรับฉัน
EatATaco

ขอบคุณ! "pdb-only" (แทนที่จะเต็ม) ก็เพียงพอแล้ว นอกจากนี้ "ขั้นสูง" เป็นปุ่มที่ด้านล่างของ Build
เกร็กเล็ก ๆ น้อย ๆ

pdbs ควรถูกสร้างที่ไหน?
ylka

1
ขอบคุณนี้แก้ไขให้ฉันหลังจากที่ฉันได้ทำการแปลง Web.config ใหม่และลบการกำหนดค่าเริ่มต้น (เช่น Web.Debug.config) ที่ VS 2017 มีให้
Ken Palmer

1
พยายามตัวเลือกอื่น ๆ จำนวนมาก (เสียเวลาเกือบ 2 ชั่วโมง) ตัวเลือก "เต็ม" นี้สามารถแก้ไขปัญหาของฉันได้ ขอบคุณ!
SoftSan

29

ในกรณีของฉัน "รหัสเพิ่มประสิทธิภาพ" ถูกตรวจสอบในคุณสมบัติโครงการของฉัน สิ่งนี้ทำให้ VS เห็นว่าแอสเซมบลีของฉันเป็น "ไม่ใช่โค้ดของฉัน" และในทางกลับกันมันไม่ได้โหลดสัญลักษณ์ของมัน

ทางออกคือการยกเลิกการเลือกนี้ ที่ตั้งของช่องทำเครื่องหมายปรับรหัส


2
นี่คือปัญหาของฉันเช่นกันและฉันได้แก้ปัญหาทั้งหมดข้างต้นทีละรายไม่มีอะไรทำงาน
antikbd

ฉันไม่เลือกตัวเลือกนี้วิธีแก้ปัญหาสะอาดสร้างโซลูชันใหม่ ฯลฯ ... VS พิจารณาอยู่เสมอว่าโมดูลเป็น "เพิ่มประสิทธิภาพ" วิธีเดียวที่ฉันพบว่าบังคับให้ VS เพื่ออัปเดตข้อมูลการดีบักคือการเพิ่มรุ่นแอสเซมบลีของโมดูล
alphanoch

ทางออกเดียวที่เหมาะกับฉัน # สำหรับคุณ (# = ++++) แต่ฉันสามารถลงคะแนนได้เพียงครั้งเดียวเท่านั้น
Luis Lopez

27

เพียงตรวจสอบว่าโซลูชันของคุณอยู่ในโหมดนำออกใช้หรือไม่


1
ใช้เวลาเกือบ 4 ชั่วโมงกว่าจะพบปัญหานี้ ขอบคุณ
Null Pointer

23

ลองใช้ visual studio เป็นผู้ดูแลระบบภายใน windows


1
ฉันจำเป็นต้องเรียกใช้ msvsmon ในฐานะผู้ดูแลระบบของเครื่องระยะไกล
Bill Hoag

นี่ไม่ใช่วิธีที่ผู้คนควรปฏิบัติตาม หากวิธีนี้แก้ไขปัญหาได้คุณควรเน้นไปที่สาเหตุที่คุณต้องการสิทธิ์ผู้ดูแลระบบเพื่อให้ VS สามารถอ่านเนื้อหาไฟล์. pdb ของโครงการได้
Jazimov

@Jazimov ฉันไม่เห็นด้วย ในขณะที่ฉันชอบที่จะใช้เวลาตรวจสอบเรื่องนี้ในกรณีของฉันนี้แก้ปัญหาของฉันและอนุญาตให้ฉันทำงานต่อไปเพราะฉันแน่ใจว่ามันทำเพื่อคนอื่นด้วย หากคุณต้องการตรวจสอบและปรับปรุงคำตอบนี้ฟรีนั่นคือสิ่งที่มันมีไว้เพื่อ
แอนดี้

เพื่อความชัดเจน: ฉันเข้าใจว่ามันแก้ไขปัญหาของคุณกับ Visual Studio นั่นไม่ใช่สิ่งที่ฉันกำลังโต้เถียง ฉันกำลังอภิปรายข้อเสนอแนะว่าคนอื่น ๆ ยอมรับทำงาน IDE เป็นวิธีการแก้ปัญหามากกว่าที่เรียบง่ายวิธีการแก้ปัญหา หากการเรียกใช้ IDE ในฐานะผู้ดูแลระบบแก้ไขปัญหาข้อมูลนั้นควรจะถูกใช้เพื่อแก้ไขสาเหตุที่แท้จริงของสาเหตุเพื่อให้ IDE ไม่ต้องการสิทธิ์ผู้ดูแลระบบเพื่อให้ทำงานได้อย่างถูกต้อง
Jazimov

21

ในกรณีของฉันฉันพยายามที่จะแก้ปัญหาในโหมด relase เมื่อฉันเปลี่ยนเป็นโหมดแก้ไขข้อบกพร่อง มันทำงาน


15

คุณต้องเปิดใช้งาน "สร้างข้อมูลการดีบัก" ในการตั้งค่าคอมไพเลอร์


1
มันควรจะอยู่ที่ไหน
MushyPeas

10
มันเหมือนกับคำตอบของ juFo - โครงการ> คุณสมบัติ> สร้าง> ขั้นสูง> ข้อมูลการดีบัก> เต็ม (หรือ pdb-only)
Jeremy Thompson

ฟัง Jeremy Thompsen มันแก้ไขปัญหาให้ฉัน
Thorkil Værge

12

->ตัวเลือกการแก้ปัญหา->ทั่วไปไม่->เลือกเครื่องหมายสำหรับ " Enable Just My Code"

สิ่งนี้ใช้ได้สำหรับฉัน


1
ดูเหมือนว่าอาจเป็นการตั้งค่าเริ่มต้นที่ควรตรวจสอบว่าการอัพเกรด VS เป็นเวอร์ชันใหม่กว่า (เหมือนที่เคยเกิดขึ้นกับฉัน)
Agamemnon

10

เราพบสาเหตุของปัญหาของเรา รหัสนี้ใช้แอตทริบิวต์ "CodeBehind" ใน Page directive ของไฟล์. aspx แทนแอตทริบิวต์ "CodeFile" (ASP.NET 2.0 ขึ้นไป) หลังจากวันแห่งความสิ้นหวังการค้นหาและแทนที่ง่าย ๆ สามารถแก้ไขปัญหาได้


10

ตัวเลือก "เริ่มการดีบัก Debug + โมดูล Windows +" ไม่มีอยู่ใน Microsoft Visual Studio Express 2013 edition

การยกเลิกการเลือก"ใช้โหมดความเข้ากันได้ที่มีการจัดการ"ในตัวเลือกเครื่องมือการแก้จุดบกพร่องแก้ไขปัญหานี้



9

ฉันลองทุกอย่างที่กล่าวมาข้างต้น แต่ไม่มีอะไรทำงาน [วิธีการทำความสะอาดและตรวจสอบไฟล์ PDB ฯลฯ ]

แม้การเผยแพร่โซลูชันเดียวกันก็ไม่สามารถแก้ไขปัญหาได้

จากนั้นฉันก็กลับไปที่สิ่งที่ฉันมักจะทำเพื่อแก้ไข (หลอกสตูดิโอภาพที่ดื้อรั้นนี้)

ทั้งหมดที่ฉันทำคือการเปลี่ยนแปลงรหัสโดยเจตนาและเผยแพร่วิธีแก้ไขปัญหา จากนั้นฉันกลับการเปลี่ยนแปลงและเผยแพร่อีกครั้ง

Voila [ไฟล์ PDB กำจัดวิญญาณชั่วร้าย] .. ไม่ใช่ความละเอียดอัจฉริยะ แต่สิ่งนี้ใช้ได้ผล .. : - |


7

แอปพลิเคชันเว็บ (IIS Express) เท่านั้น:

  • คลิกขวาที่ถาด IIS Express และปิด IIS
  • น้ำยาทำความสะอาด

IIS Tray


ฉันลองคำแนะนำอื่น ๆ มากมายในคำตอบอื่น ๆ ซึ่งหลายคนเคยช่วยฉันมาแล้ว แต่วันนี้อันนี้ช่วยได้ ในกรณีของฉันฉันมีสาขาหลายสาขาและฉันคิดว่า IIS Express ติดอยู่กับสาขาอื่นและไม่รีเฟรชกับสาขาที่ฉันพยายามแก้ไขปัญหาแม้ว่าจะพยายามล้างและสร้างใหม่หลายครั้งก็ตาม
Chris H

6

ไม่มีคำตอบใดที่แก้ปัญหาของฉันได้ ฉันลองสิ่งอื่นตามความจริงที่ว่าโครงการที่หยุดไม่ได้ในความเป็นจริงแล้วโครงการที่โหลด ฉันพบว่า Hans Passant เขียนว่า. dll ที่ฉันต้องการหยุดการดีบักเกอร์และไฟล์. pdb ที่เชื่อมโยงซึ่งคัดลอกใกล้กับไฟล์. exe ไฟล์เหล่านั้นมีวันที่เก่ากว่าดังนั้นฉันคิดว่าพวกเขาไม่ได้อัปเดตในรันไทม์ ฉันลบพวกเขาด้วยตนเอง Visual Studio สร้างคู่อื่นแล้วใส่คู่ใหม่นี้ใกล้กับ. exe ตอนนี้ breakpoins ใช้งานได้!

บางที Visual Studio ไม่สามารถคัดลอกและแทนที่ไฟล์ที่มีอยู่ (.dll และ. pdb) ใกล้กับ. exe เนื่องจากมีไฟล์อื่นอยู่ที่นั่น ดังนั้นถ้าฉันลบด้วยตนเองแล้ว VS สามารถสร้างใหม่ใกล้. exe

ฉันคิดว่าการเปลี่ยนแปลงอื่น (ตรวจสอบและอื่น ๆ - จากคำตอบอื่น) เรียกบางสิ่งบางอย่างและ Visual Studio คัดลอกและแทนที่ dll และ pdb จากโฟลเดอร์โครงการไปยังโฟลเดอร์ใกล้ exe ดังนั้นจึงเป็นทางออก

ฉันคิดว่าสาเหตุที่แท้จริงของปัญหาคือ Visual Studio ใช้ไฟล์อื่นใน runtime ไม่มีไฟล์จากโปรเจ็กต์หยุด

บางทีคำตอบนี้อาจช่วยใครซักคน!


6

สิ่งที่ต้องตรวจสอบให้ชัดเจน: ตรวจสอบให้แน่ใจว่าคุณได้ตั้งค่าการกำหนดค่าเป็น "ดีบั๊ก" และไม่ใช่ "รีลีส" คุณสามารถดีบักโปรเจ็กต์เริ่มต้นในโหมด 'Release' แต่ไม่ใช่ไลบรารีคลาสที่อ้างอิง


6

คุณสมบัติโครงการ (จากนั้นเลือกการกำหนดค่าการสร้างของคุณ)> แท็บสร้าง> ขั้นสูง ... > ข้อมูลการดีบัก (ดรอปดาวน์)

ตั้งค่าเป็น 'all' หรือ 'pdb-only' จากนั้นสร้างใหม่


ฉันทำ pdb_only แล้วก็ทำความสะอาดและรีสตาร์ทเบราว์เซอร์
Jason

6

แทนที่จะทำสิ่งเหล่านี้ทั้งหมดเพียง

ปิดและเปิดใหม่

การแก้ปัญหามันจะแก้ไขปัญหา


ทำงานให้ฉันใน Microsoft Visual Studio 2013 ภายใต้: ไฟล์> ปิดโซลูชันจากนั้นไฟล์> โซลูชันเปิด (ควรโหลดไว้ล่วงหน้ากับโฟลเดอร์เดียวกันกับที่อยู่ในนั้น) จุดพักเปลี่ยนจากธงสีเหลืองเป็นสีแดงแบบวงกลมทันที ขอบคุณมาก
Zargold

อัจฉริยะ OMG! ขอบคุณ !!!
AresDev

6

ฉันมีปัญหาที่คล้ายกันและฉันทำสิ่งต่อไปนี้: Debug => ตัวเลือก => ทั่วไป => ลบเครื่องหมายถูกสำหรับ "เปิดใช้งานรหัสของฉัน" สิ่งนี้ใช้ได้สำหรับฉัน ..


สิ่งนี้สามารถใช้ได้กับฉันด้วย
โมฮัมเหม็ดเอลคีรีที่

6

สิ่งนี้ทำให้ฉันลองใช้ตัวเลือกอื่น ๆ ด้านบนและด้วยเหตุผลแปลก ๆ บางประการที่ทำให้การดีบักหยุดทำงาน

เครื่องมือ -> ตัวเลือก -> การดีบัก -> ทั่วไป -> (ไม่เลือก) "ต้องการไฟล์ต้นฉบับให้ตรงกับรุ่นดั้งเดิม"


6
  1. โซลูชั่นที่สะอาดและสร้างใหม่
  2. ตรวจสอบการกำหนดค่าที่กำหนดเป็น Debug
  3. ตรวจสอบให้แน่ใจว่าไฟล์ PDB อยู่ในโฟลเดอร์ Debug ที่เป็นของตนเอง
  4. จากเมนูดีบั๊กคลิกเปิดใช้งานจุดพักทั้งหมด

6

ตรวจสอบการตั้งค่าสองอย่างต่อไปนี้ใน Visual Studio:

คลิกขวาที่โครงการทดสอบไปที่คุณสมบัติแท็บสร้างและดูที่แพลตฟอร์มเป้าหมาย

Mine มีการตั้งค่าเป็น "Any CPU" ดังนั้นx64

ป้อนคำอธิบายรูปภาพที่นี่

บนแถบเมนูหลักไปที่การทดสอบการตั้งค่าการทดสอบสถาปัตยกรรมตัวประมวลผลเริ่มต้น

Mine ถูกตั้งค่าเป็น X86

ป้อนคำอธิบายรูปภาพที่นี่

การเปลี่ยนสิ่งนี้เป็นX64เพื่อให้ตรงกับการตั้งค่าด้านบนทำให้เมนู "Visual Debug Test" ที่สร้างขึ้นในตัวทำงานและตีจุดพักที่ถูกละเว้นก่อนหน้านี้พร้อมกับข้อความ "จุดพักจะไม่ถูกตีในขณะนี้ ไม่มีการโหลดสัญลักษณ์สำหรับเอกสารนี้”

ปรับปรุง:

สำหรับVisual Studio 2019เมนูถูกย้ายไปรอบ ๆ : ป้อนคำอธิบายรูปภาพที่นี่


5

ฉันรู้ว่าฉันมาหลายปีแล้ว แต่ฉันคิดว่าฉันทำอะไรผิดและทำตามขั้นตอนข้างต้นแล้วฉันก็รู้ว่าฉันตั้งค่าโซลูชันเป็น 'Release' โดยไม่ได้ตั้งใจ :)


1
ฉันสามารถโหวต 10K ครั้งได้หรือไม่? สิ่งที่แย่ที่สุดคือฉันคิดว่าฉันได้ค้นหาสิ่งนี้บน google อย่างเช่น 10 ครั้งแล้วและทุกครั้งก็เป็นความผิดพลาดที่โง่เหมือนกัน บางที Microsoft อาจบอกใบ้ให้ผู้ใช้?
tfrascaroli
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.