Câu hỏi Làm cách nào để khắc phục “Điểm dừng hiện tại sẽ không bị tấn công. Không có biểu tượng nào được tải cho tài liệu này. ”Cảnh báo?


C # ứng dụng máy tính để bàn trên phiên bản thể hiện. Làm việc sau đó đã không làm việc 5 giây sau đó.

Tôi đã thử những điều sau đây.

  • Đảm bảo cấu hình gỡ lỗi, cờ gỡ lỗi và thông tin gỡ lỗi đầy đủ được đặt trên tất cả các cụm.
  • Xóa tất cả các thư mục bin và obj và tất cả các tệp DLL liên quan đến dự án từ toàn bộ máy của tôi.
  • Tạo lại các dự án gây ra vấn đề từ đầu.
  • Khởi động lại.

Tôi có hai dự án WinForms trong giải pháp. Một trong số họ tải thông tin gỡ lỗi, một thông tin không. Cả hai đều đề cập đến hội đồng tôi đang cố gắng để có được thông tin gỡ lỗi trên trong cùng một cách chính xác trong tập tin dự án. Ý tưởng nào?


Tôi muốn thêm vào đây, chủ yếu là cho bản thân mình khi tôi trở lại để xem lại câu hỏi này, rằng các ký hiệu không được nạp cho đến khi assembly được nạp, và assembly không được nạp cho đến khi nó là cần thiết. Nếu điểm ngắt nằm trong một thư viện chỉ được sử dụng trong một hàm trong assembly chính của bạn, các ký hiệu sẽ không được tải (và nó sẽ hiển thị điểm ngắt khi không bị nhấn) cho đến khi hàm đó được gọi.


1149


gốc


Khi gỡ lỗi, hãy chuyển đến chế độ xem Gỡ lỗi, Windows, Mô-đun. Điều này sẽ hiển thị thông tin về các mô-đun tải và trạng thái ký hiệu. Bạn có thể nhấp chuột phải vào một mô-đun và cố gắng tải các biểu tượng từ một vị trí khác. - Polyfun
Phiên bản Express không có chế độ xem Mô-đun. - Instance Hunter
Điểm tốt về hội đồng không được tải cho đến khi cần thiết. Trình gỡ lỗi sẽ chỉ ra rằng điểm ngắt sẽ không bị nhấn, nhưng màn hình sẽ thay đổi / điểm ngắt của bạn S be bị nhấn khi lắp ráp được nạp. Một giải pháp thay thế cheesy vấn đề giao diện người dùng này sẽ được thực hiện một cuộc gọi đến lắp ráp tại chương trình bắt đầu để buộc lắp ráp được nạp. - Tim Coker
Tôi đã gặp vấn đề tương tự và tôi nhận thấy rằng đối với cấu hình xây dựng này, tôi không có <DebugSymbols>true</DebugSymbols> dưới nó trong VS2015 tôi tự thêm nó và nó hoạt động tốt. - kuskmen
Loại bỏ các tập tin .suo có thể đã giải quyết vấn đề xấu xí này tại dự án của tôi - Roland


Các câu trả lời:


Bắt đầu gỡ lỗi, ngay sau khi bạn đã đến điểm ngắt hoặc được sử dụng Debug > Break All, sử dụng Debug > Windows > Modules. Bạn sẽ thấy một danh sách tất cả các assembly được nạp vào trong tiến trình. Xác định vị trí bạn muốn nhận thông tin gỡ lỗi. Nhấp chuột phải vào nó và chọn Tải thông tin Symbol. Bạn sẽ nhận được một hộp thoại liệt kê tất cả các thư mục mà nó tìm kiếm tệp .pdb cho assembly. Xác minh danh sách đó dựa vào vị trí .pdb thực tế. Hãy chắc chắn rằng nó không tìm thấy một cũ.

Trong các dự án bình thường, assembly và tệp .pdb của nó luôn luôn được sao chép bởi IDE vào cùng thư mục với tệp .exe của bạn. Thư mục bin \ Debug của dự án của bạn. Hãy chắc chắn rằng bạn xóa một từ GAC nếu bạn đã chơi với nó.


843



Có hiệu quả, đó là vấn đề về trường hợp của tôi. Chúng tôi đã có một postcompile mà làm cho nó không được coi là 'Mã người dùng' ... bây giờ, tôi phải xem có gì với điều đó, nhưng tôi xác nhận rằng không có sửa đổi postcompile, các biểu tượng được nạp. @Hans cảm ơn bạn, đã cứu tôi một số phút tốt! gửi bia ảo - eglasius
Câu hỏi đặt ra là về ấn bản nhanh, không may là câu trả lời này không áp dụng. Trên thực tế không có câu trả lời nào phù hợp với tôi, tôi cũng đã thử gỡ bỏ thư mục Debug và xây dựng lại. - Nicolas Raoul
Tôi không hiểu ý bạn là gì "Bắt đầu gỡ lỗi, gỡ lỗi + Windows + Modules" - Blessed Geek
Microsoft Visual Studio Express 2013 cho Web không có tùy chọn Mô-đun Windows gỡ lỗi. Howo sử dụng sửa lỗi này trong trường hợp này? - Andrus
Như một gợi ý, bật các ngoại lệ của bạn để nó phá vỡ nơi bạn muốn nó (nếu bạn không thể đặt một điểm break trong đầu của quá trình) ... Sau đó bạn làm theo quá trình khuyến nghị của Han Debug> Windows> Modules. Hãy tìm dự án bạn đang cố gắng bước vào và nhìn vào PATH. nếu nó nói "C: \ windows \ assembly" thì nó trỏ đến một dll GAC và NOT project ... - Andy Danger Gagne


Trước tiên, hãy thử xây dựng lại dự án của bạn bằng cách nhấp chuột phải vào dự án> Xây dựng lại Nếu điều đó không hiệu quả, hãy thử làm sạch dự án (nhấp chuột phải vào dự án> xóa)

Nếu điều đó không hiệu quả, hãy kiểm tra điều này:

  1. Nhấp chuột phải vào của bạn dự án
  2. lựa chọn [Tính chất]
  3. chọn [Xây dựng] chuyển hướng
  4. bảo đảm [Xác định hằng số DEBUG] và [Xác định TRACE hằng số] được chọn
  5. Nhấn vào [Nâng cao] ở cuối tab Xây dựng
  6. Đảm bảo rằng [Thông tin gỡ lỗi:] được đặt thành [đầy]
  7. Nhấp chuột [OK] và xây dựng lại dự án ;-)

(bước 6 tạo tệp .pdb, đây là các biểu tượng gỡ lỗi)


267



Đảm bảo rằng [Debug Info:] được đặt thành [full] - đã sửa nó cho tôi! Tôi có nhiều cấu hình được thiết lập trên dự án của mình, những cấu hình mới tôi đã thêm không có bộ này. - Chiefy
Hóa ra tôi đã ở trong bản phát hành. tsk. - pandalion98
Nếu bạn không có build tab, bạn cũng có thể đi compile > Advanced compile options > steps 4 - 7. Điều đó đã làm nó cho tôi. - DJMcMayhem
Đó là tuyệt vời nếu bạn chỉ làm việc với một dự án duy nhất, nhưng tôi đã có 20 và quá trình hoạt động lặp đi lặp lại thông qua tất cả chúng, tùy thuộc vào quá trình cụ thể nó đang chạy. - CSS
Nếu bạn có dự án C ++ / C # hỗn hợp với khởi động tự nhiên, hãy đảm bảo rằng đó là Debugging> Debugger Type của dự án là Mixed. - Bill Hoag


Chỉ cần một cái gì đó đơn giản để thử - bạn có thể đã thử nó rồi. Nhấp chuột phải vào Solution trong trình khám phá giải pháp, nhấp "giải pháp sạch", điều này sẽ xóa tất cả các tệp được biên dịch và tạm thời được liên kết với giải pháp.

Thực hiện xây dựng lại giải pháp và thử gỡ lỗi lại.

Tôi cũng đã có những rắc rối với breakpoint nhiều dự án trong một giải pháp - một số biên dịch như x86, một số như x64.


237



Làm thế nào bạn sửa chữa các điểm ngắt với nhiều dự án trong một giải pháp - một số được biên dịch thành x86, một số là x64? - Richard Li
Nếu bạn đang chạy IISExpress (hoặc trình mô phỏng Azure), các tệp trong C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Tệp ASP.NET tạm thời \ root có thể không được cập nhật nếu AssemblyVersion của bạn là 1.0.0.0. Hãy chắc chắn rằng nó là một cái gì đó như 1.0. * Để một phiên bản mới được tạo ra mỗi khi bạn xây dựng dự án web của bạn. Giải pháp làm sạch không xóa thư mục tệp Internet tạm thời. - Michael Lang
My vs 2015 không có lệnh "clean solution". - Doug Null
Điều này cũng giống như việc xây dựng lại tất cả. - Jonathan Wood
@jonathan Wood - Tôi hầu như đồng ý với điều đó. Nhưng trong một số trường hợp hiếm hoi, Rebuild All có thể tạo ra những kết quả hơi khác một chút - tôi biết tôi đã từng thấy sự khác biệt lạ thường. Có một cái nhìn ở đây cho một số cuộc thảo luận thú vị: stackoverflow.com/questions/1247457/… - Patrick


Tắt tùy chọn "Chỉ mã của tôi" trong cài đặt Gỡ lỗi / Chung.


180



Vâng, trên một dự án Windows Phone 8 với một cấu hình tùy chỉnh xây dựng, đây là những gì đã làm nó cho tôi. - GONeale
Đây là giải pháp tôi cần khi thực hiện gỡ lỗi từ xa trên một máy chủ IIS độc lập. - JasCav
Đây là giải pháp duy nhất có hiệu quả đối với tôi sau khi thử nhiều thứ. Cảm ơn nhiều! - equisde
Làm việc cho tôi với Windows Phone 8.1 và Cộng đồng VS 2015. - Fabiano Araujo
Chỉ cần rõ ràng: Trong VS 2017, cài đặt này đặc biệt trong hộp thoại Công cụ, Tùy chọn bên dưới ngăn Gỡ lỗi, Chung (không có ngăn "Gỡ lỗi", chính xác). Hộp kiểm được gọi là "Chỉ kích hoạt mã của tôi" chứ không phải "Chỉ mã của tôi". - Jazimov


Cross đăng sự cố này từ Hans K mà tôi tìm thấy trên chuỗi tương tự >> TẠI ĐÂY <<:

Nhấp chuột phải vào giải pháp -> Thuộc tính

Xem trong Thuộc tính chung -> Dự án khởi động

Chọn nhiều dự án khởi động

chọn Bắt đầu hành động trên các dự án bạn cần gỡ lỗi.


124



Điều này cũng xử lý các tình huống mà bạn đang cố gắng để gỡ lỗi một dự án WEB là một điểm cuối truy cập .NET đang chạy trên máy chủ phát triển VS và hiển thị "không có biểu tượng nào được tải". - D-Sect
CÁi này đã sửa nó giúp tôi. Tôi nghĩ rằng trước đây sombody đã cố gắng để đính kèm gỡ lỗi cho máy chủ IIS địa phương thay vì phiên bản gỡ lỗi của IIS mà visual studio sử dụng. - Dowlers
Cảm ơn bạn! Tôi đã đi hạt với cái này. Điều này làm việc tuyệt vời. - Matt Cashatt
Nếu bạn đã xóa tệp .suo, bạn có thể mất cài đặt giải pháp được chọn tại đây và sẽ phải đặt lại chúng - Redeemed1
Điều đó là vậy đó! Cảm ơn bạn!! - starmandeluxe


Câu trả lời đã chọn đã giúp tôi khắc phục sự cố của mình. Nhưng tôi cần phải làm một vài điều nữa:

Ngay cả với "Debug" được chọn trong menu thả xuống:

enter image description here

Và trong dự án Properties> Build:

enter image description here

Visual Studio không tải biểu tượng cho một dự án cụ thể. Vì vậy, trong trình đơn thả xuống đó, tôi chọn "Trình quản lý cấu hình" và thấy rằng các cài đặt cho dự án web của tôi không chính xác:

enter image description here

enter image description here

Sau đó, tôi đặt thành "Gỡ lỗi" và bắt đầu tạo .pdb tập tin. NHƯNG Tôi cần phải tự sao chép PDB và DLL và đặt vào thư mục mà VS đang tìm kiếm (đây là nơi mà câu trả lời đã chọn đã giúp tôi):

enter image description here


45



Tôi đã chạy release chế độ. Cảm ơn !! - Dipak Telangre
Chìa khóa cho tôi là hộp 'Triển khai' không được kiểm tra, do đó pdb không được triển khai lại sau khi xây dựng - Ben


Debug > Windows > Modules để xem những gì các mô-đun đã được tải đưa tôi đi đúng hướng.

Trong trường hợp của tôi, IIS Express dường như đang tải một DLL khác từ các tệp ASP.NET tạm thời.

Giải pháp?

  1. Duyệt đến C:\Users\<YOUR USER>\AppData\Local\Temp\Temporary ASP.NET Files\vs
  2. Xóa mọi thứ trong thư mục này!

36



Đây là vấn đề của tôi, thư mục phải có đầy đủ các tệp DLL bị hỏng đã được tải làm tùy chọn. - gburton
Điều này làm việc cho tôi, ngoại trừ trong trường hợp của tôi, thư mục tôi phải thanh lọc là C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporary ASP.NET Files \ vs \ - Andy
Tôi đã có một vấn đề tương tự mà tôi đã có ứng dụng này được cài đặt và nó đã được tải rằng DLL thay vì một từ dự án của tôi không có tập tin PDB liên quan. Sau khi gỡ cài đặt ứng dụng cũ, sự cố đã được giải quyết cho tôi. Cảm ơn! - Lenny K
Điều này cũng làm việc với IIS đầy đủ. - Kevin Kuszyk


Tôi đã có thể khắc phục lỗi bằng cách chỉ cần đặt tùy chọn trong tùy chọn 'Đính kèm quy trình' thành 'Tự động xác định loại mã để gỡ lỗi' như được hiển thị trong ảnh chụp màn hình đính kèm.

Chỉ cần làm theo các bước dưới đây:

  • Đi đến Gỡ lỗi từ thanh trình đơn
  • Bấm vào Đính kèm quy trình 
  • Gần Đính kèm tùy chọn, nhấp vào Lựa chọn nút
  • Các Chọn loại mã cửa sổ sẽ xuất hiện
  • Bây giờ hãy chọn tùy chọn Tự động xác định loại mã để gỡ lỗi và nhấp vào nút OK.

Fixed Debugging Error


35



Đối với những người khác đã thử mọi thứ trên trang này, tôi đã khắc phục sự cố của mình bằng cách chuyển sang mã 'Được quản lý (v4.5, v4.0)'! - stevekrzysiak
Chuyển sang "Managed (v4.5, v4.0)" đã sửa nó cho tôi cũng như gỡ lỗi một ứng dụng DNN ASP.Net. Cảm ơn! - Mmm
Không làm việc cho tôi. Tùy chọn đã được chọn trước - RDeveloper
Tôi chuyển sang Native và nó sooo làm việc !!! Cảm ơn bạn! - GreatDane
Cảm ơn bạn. Nó làm việc cho tôi. - Usman


Đôi khi, mặc dù nó mang lại cho bạn lỗi này, breakpoint vẫn bị đánh, vì vậy chỉ cần bỏ qua lỗi. Điều này xảy ra khá thường xuyên trong Views Của một MVC web app.


30



Điều này thực sự nên được upvoted một nơi nào đó để đầu trang. Tôi đã dành rất nhiều thời gian để làm tất cả các câu trả lời ở trên, nhưng điểm ngắt thực sự sẽ bị đánh trúng. Chỉ cần kiểm tra :) Ngoài ra, đó là một ứng dụng máy tính để bàn WPF. - Bartosz
aspx dường như được biên dịch theo yêu cầu, do đó thông tin gỡ lỗi chỉ có sẵn sau khi trang aspx là cần thiết - aeroson
Ngoài ra cho UnitTesting - bạn cần phải chờ một vài giây và sau đó nó được nhấn. - David Refaeli
bạn đã cứu cuộc đời tôi ; như @ Bartart cho biết, nó nên được upvoted lên hàng đầu - fatiDev