programing

해결 방법: "현재 중단점이 적용되지 않습니다.이 문서에 대한 기호가 로드되지 않았습니다." 경고?

padding 2023. 5. 28. 20:25
반응형

해결 방법: "현재 중단점이 적용되지 않습니다.이 문서에 대한 기호가 로드되지 않았습니다." 경고?

C# 데스크톱 응용 프로그램(Visual Studio Express 버전)이 작동했지만 5초 후에는 작동하지 않았습니다.

다음을 시도했습니다.

  • 모든 어셈블리에 디버그 구성, 디버그 플래그 및 전체 디버그 정보가 설정되어 있는지 확인합니다.
  • 모든 bin 및 obj 폴더와 프로젝트와 관련된 모든 DLL 파일을 내 전체 컴퓨터에서 삭제합니다.
  • 문제의 원인이 되는 프로젝트를 처음부터 다시 만듭니다.
  • 재부팅합니다.

이 솔루션에는 두 개의 Windows Forms 프로젝트가 있습니다.그 중 하나는 디버깅 정보를 로드하지만 다른 하나는 로드하지 않습니다.둘 다 프로젝트 파일에서 디버그 정보를 가져오려는 어셈블리를 참조합니다.아이디어 있어요?


여기에 덧붙이고 싶은 것은, 제가 이 질문을 검토하러 돌아왔을 때, 기호는 어셈블리가 로드될 때까지 로드되지 않으며, 어셈블리는 필요할 때까지 로드되지 않는다는 것입니다.중단점이 기본 어셈블리의 한 기능에서만 사용되는 라이브러리에 있는 경우 해당 기능이 호출될 때까지 기호가 로드되지 않고 중단점이 히트되지 않은 것으로 표시됩니다.

하거나 사용하는 합니다.Debug > Break All,사용하다Debug > Windows > Modules프로세스에 로드된 모든 어셈블리 목록이 표시됩니다.디버그 정보를 가져올 대상을 찾습니다.마우스 오른쪽 버튼을 클릭하고 기호 로드 정보를 선택합니다.어셈블리의 .pdb 파일을 찾은 모든 디렉터리를 나열하는 대화 상자가 나타납니다.이 목록을 실제 .pdb 위치와 비교하여 확인합니다.오래된 것을 찾지 못하도록 합니다.

일반 프로젝트에서 어셈블리와 해당 .pdb 파일은 항상 IDE에 의해 .exe와 동일한 폴더, 즉 프로젝트의 bin\Debug 폴더에 복사되어야 합니다.GAC를 가지고 놀고 있으면 GAC에서 하나를 제거해야 합니다.

릴리스가 아니라 디버그에 있는지 확인합니다.

디버그 시:

>, ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜ(right mouse click on the project > clean).

그래도 작동하지 않으면 다음을 확인합니다.

 1. Right mouse click your **project**
 2. Select **[Properties]**
 3. Select the **[Build]** tab
 4. Make sure **[Define DEBUG constant]** and **[Define TRACE constant]** are checked
 5. Make sure **[Optimize Code]** is unchecked
 6. Click the **[Advanced]** button at the bottom of the Build tabpage
 7. Make sure that **[Debug Info:]** is set to **[full]**
 8. Click **[OK] and rebuild** the project ;-)

(7단계는 다음을 생성합니다..pdb기호입니다) 파일(파일 이름)

의 "내 코드만 사용 가능" 옵션을 선택 취소합니다.

도구/옵션/디버깅/일반

그냥 간단하게 시도할 수 있는 것 - 이미 시도했을 수도 있습니다.솔루션 탐색기에서 솔루션을 마우스 오른쪽 단추로 클릭하고 "솔루션 정리"를 클릭하면 솔루션과 관련된 컴파일된 파일과 임시 파일이 모두 삭제됩니다.

솔루션을 재구성한 후 디버그를 다시 시도합니다.

솔루션의 여러 프로젝트(일부는 x86으로 컴파일되고 일부는 x64로 컴파일됨)에 대한 중단점 문제도 있었습니다.

선택된 답변은 제가 문제를 해결하도록 이끌었습니다.하지만 몇 가지 더 해야 할 일이 있습니다.

드롭다운에서 "디버그"를 선택한 경우에도:

여기에 이미지 설명 입력

프로젝트 속성 > 빌드:

여기에 이미지 설명 입력

Visual Studio에서 특정 프로젝트에 기호를 로드하지 않았습니다.그래서 그 드롭다운에서 "구성 관리자"를 선택하고 웹 프로젝트의 설정이 올바르지 않음을 확인했습니다.

여기에 이미지 설명 입력

여기에 이미지 설명 입력

다음 "했더니 "debug"라는 단어가 했습니다..pdb파일. 하지만 PDB와 DLL을 수동으로 복사하여 VS가 찾고 있던 폴더에 넣어야 합니다(선택한 답변이 도움이 되었습니다).

여기에 이미지 설명 입력

때로때, 비록그당게이주오만지를류신,Breakpoint여전히 적중되므로 오류를 무시하십시오.

에서 꽤 발생합니다.Views상당한MVC 앱, 앱웹, 즉..cshtml.

Debug>Windows>Modules어떤 모듈이 로드되고 있는지 확인하기 위해 올바른 방향으로 이동했습니다.

제 경우 IIS Express가 임시 ASP.NET 파일과 다른 DLL을 로드하는 것 같습니다.

해결책?

  1. 찾기로 합니다.C:\Users\<YOUR USER>\AppData\Local\Temp\Temporary ASP.NET Files\vs
  2. 이 디렉터리의 모든 항목을 삭제합니다!

bin/Debug 폴더에 .pbd 파일이 없는지 확인합니다.프로젝트의 "속성"으로 이동하는 경우 "구축"을 선택한 다음 아래쪽에서 "고급"을 선택합니다.표시된 새 창에서 "디버그 정보" 아래의 "전체"를 선택합니다.이것은 나의 문제였고 나를 위해 해결되었습니다.

설정을 찾을 위치 표시

'에서 옵션을 설정하는 것만으로 오류를 해결할 수 있었습니다.Attach to Process에게Automatically determine the type of code to debug옵션은 첨부된 스크린샷과 같습니다.

다음 단계를 수행하기만 하면 됩니다.

 - Go to **Debug** from the menu bar 
 - Click on **Attach to Process** 
 - Near the **Attach to** option, click on the **Select** button 
 - The **Select Code Type** window will appear 
 - Now select the option **Automatically determine the type of code 
   to debug** and click the OK button.

수정된 디버깅 오류

저의 경우 프로젝트 속성에서 "Optimize Code(코드 최적화)"가 선택되었습니다.이로 인해 VS는 내 어셈블리를 "내 코드가 아님"으로 인식하고, 어셈블리에 대한 기호를 로드하지 않았습니다.

해결책은 이것의 선택을 취소하는 것이었습니다.코드 최적화 확인란의 위치

윈도우 내에서 비주얼 스튜디오를 관리자로 실행해 보십시오.

컴파일러 설정에서 "디버깅 정보 생성"을 활성화해야 합니다.

위에 언급된 모든 것을 시도해 보았지만, 아무 것도 되지 않았습니다.[Clean solution, PDB 파일 등 확인]

같은 솔루션을 게시해도 문제가 해결되지 않았습니다.

그리고 나서 저는 제가 해결하기 위해 보통 하는 일로 돌아갔습니다(이 완고한 Visual Studio를 속입니다).

제가 한 일은 코드를 의도적으로 변경하고 해결책을 발표하는 것뿐이었습니다.그리고 나서 저는 변경 사항을 되돌려서 다시 게시했습니다.

Voila [PDB 파일은 악령을 제거합니다.현명한 해결책은 아니지만, 이것은 효과가 있었습니다.:-|

우리는 우리의 문제의 원인을 찾았습니다.이 코드는 .aspx 파일의 페이지 지시어에서 "CodeFile" 속성(ASP.NET 2.0 이상) 대신 "CodeBeynd" 속성을 사용했습니다.며칠 동안의 필사적인 노력 끝에, 간단한 검색과 교체가 문제를 해결했습니다.

웹 응용 프로그램(IIS Express)만:

  • IIS Express 트레이를 마우스 오른쪽 버튼으로 클릭하고 IIS를 닫습니다.
  • 클린 솔루션

IIS 트레이

Microsoft Visual Studio Express 2013 버전에는 "디버깅 시작, 디버그 + Windows + 모듈" 옵션이 없습니다.

도구 옵션 디버깅에서 "관리되는 호환성 모드 사용"의 선택을 취소하면 문제가 해결됩니다.

  1. 꼭 참여하세요.Debug그리고 그렇지 않습니다.releasedebug아래 그림에서 볼 수 있는 것처럼 드롭다운 메뉴에 있습니다.

여기에 이미지 설명 입력

  1. 다음,의 마우스 .Clean solution.

여기에 이미지 설명 입력

  1. 솔루션 오른쪽 하고 그런다음솔탐창마에서오우스단른다클추선니릭택합솔다재고루음하을을 선택합니다.Rebuild solution

여기에 이미지 설명 입력

1. Clean solution and Rebuild
2. Check the configuration is set to Debug
3. Make sure that the PDB file is in the Debug folder it self
4. From Debug menu click Enable All Break points

Visual Studio에서 다음 두 가지 설정이 동일한지 확인합니다.

테스트 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 속성, 빌드 탭으로 이동한 후 플랫폼 대상 보기

내 것은 모두 "모든 CPU"로 설정되어 있으므로 x64.

여기에 이미지 설명 입력

기본 메뉴 모음에서 테스트, 테스트 설정, 기본 프로세서 아키텍처로 이동합니다.

내 것은 X86으로 설정되었습니다.

여기에 이미지 설명 입력

위의 설정과 일치하도록 이 옵션을 X64로 변경하면 기본 제공 Visual Studio 메뉴 "Debug Test(s)"가 작동하고 "The Breakpoint will not hit currently hit" 메시지와 함께 이전에 무시되었던 중단점이 표시됩니다.이 문서에 대한 기호가 로드되지 않았습니다."

업데이트:

Visual Studio 2019의 경우 메뉴가 약간 이동되었습니다.

또한 x86(또는 x64)에서 전체 솔루션(참조된 프로젝트 포함)을 재구성하는 것과 동일한 문제가 있었습니다.

구성 관리자(빌드->구성 관리자)에서 모든 프로젝트를 x86으로 설정했지만 일부 프로젝트는 x86으로 설정되지 않았습니다.

따라서 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 다음을 수행합니다.

프로젝트 -> 속성 -> 디버그 탭에서 구성 및 플랫폼을 확인합니다.

디버거를 중지할 .dll과 .exe 파일 근처에 복사된 관련 .pdb 파일.그 파일들은 날짜가 오래되어 런타임에 업데이트되지 않은 것으로 생각했습니다.수동으로 삭제하고 Visual Studio에서 다른 쌍을 생성하여 이 새 쌍을 .exe 근처에 배치했습니다.이제 중단점이 작동합니다!

.exe 근처에 기존 파일(.dll 및 .pdb)이 하나 더 있기 때문에 Visual Studio에서 복사 및 교체할 수 없습니다.따라서 수동으로 삭제하면 VS가 .exe 근처에 새 것을 만들 수 있습니다.

문제의 근본 원인은 Visual Studio가 프로젝트의 파일이 아닌 런타임에 중지와 함께 다른 파일을 사용하기 때문이라고 생각합니다.

이 모든 작업을 수행하는 대신 닫기 및 다시 열기만 하면 됩니다.

프로젝트 속성(그런 다음 빌드 구성 선택) > 빌드 탭 > 고급...> 디버그 정보 (드롭다운)

'all' 또는 'pdb-only'로 설정한 후 다시 빌드

위의 다른 옵션을 시도하는 데 시간이 좀 걸렸고 이상한 이유로 디버깅이 작동하지 않았습니다.

도구 -> 옵션 -> 디버깅 -> 일반 -> (untick) "원래 버전과 정확히 일치하는 원본 파일 필요" 옵션

C# 애플리케이션을 정적 라이브러리와 통합하고 있었습니다.VS10처음 듣는 것입니다.

관리 코드를 작성했습니다.dll그들을 연결하는 것.할 수 , 모든곳브포설인수있만지정할를트레크에이▁the,pointswhere▁i▁but만▁break있,static lib.

위에 설명된 메시지를 받았습니다. 이 문서에 대한 기호가 로드되지 않았습니다.저는 위의 많은 제안들을 시도했습니다.

저는 그 기호들이 장전되어 있지 않다는 것을 알 수 있었습니다.마침내 구성 디버그, 관리되지 않는 코드 디버깅 사용 확인란을 발견했습니다.

그 덕분에 저는 중단점을 설정할 수 있었습니다.static lib기능들.

여러 가지를 시도해 본 결과, 궁극적으로 제게 도움이 된 것은 다음과 같습니다.

Debug > Options > General선택을 취소합니다Enable Edit and Continue.

제 경우, 저는 다음을 편집하고 있었습니다.class library (DLL).

로드된 모듈이 없는 것 같습니다.Debug -> Modules그래서 기호를 수동으로 로드할 수도 없었습니다.

제 해결책은 이 행을 코드에 추가하는 것이었습니다.

System.Diagnostics.Debugger.Launch();

이 코드에 도달하면 예외가 트리거되고.NET Framework어떤 Visual Studio(즉, 의 새 인스턴스)를 묻는 대화 상자를 표시합니다.VS 2008로의 예VS 2013,etc프로그램을 디버그하는 데 사용할 수 있습니다.

프로젝트가 로드된 기존 VS 인스턴스를 선택할 수 있습니다.

가 프스를에다니에 됩니다.VS세션을 수행하고 모든 기호를 로드하면 프로젝트를 디버그할 수 있습니다.

은 "Debug"가 " 구성을 .Release.

ASP.Net 응용 프로그램의 경우 사이트의 속성인 ASP.NET 탭을 확인합니다.올바른 ASP.NET 버전이 선택되었는지 확인합니다.

이것은 다른 웹 서비스 asmx 파일을 기존 웹 서비스에 복사하여 붙여넣은 후에 저에게 발생했습니다. 최근에 추가된 서비스를 디버그하려고 할 때 동일한 오류가 발생했습니다. 디버그 없이 시작한 디버그를 하고 프로세스에 첨부할 수 있습니다.이상하지만 디버깅할 수 있는 유일한 방법입니다.

이 오류의 원인은 디버그 기호가 릴리스를 위해 빌드한 후 솔루션을 표면화하는 데 어려움을 겪는다는 것입니다.

저는 다른 모든 답변을 시도했습니다. 일반적으로 .pdb 기호를 재생성하거나 위치를 확인하거나, 프로젝트를 청소 및 재구축하고, 활성 구성이 릴리스되지 않도록 하는 등입니다.

결국 제게 효과가 있었던 것은 솔루션 탐색기 > 디버그 > 새 인스턴스 시작에서 프로젝트를 마우스 오른쪽 버튼으로 클릭하는 것입니다.

언급URL : https://stackoverflow.com/questions/2155930/how-do-i-remedy-the-breakpoint-will-not-currently-be-hit-no-symbols-have-been

반응형