programing

디버깅하는 동안 식을 평가할 수 없습니다.

newsource 2023. 5. 20. 10:51

디버깅하는 동안 식을 평가할 수 없습니다.

asp.net 코드를 디버깅할 때(IIS에 대해 실행 중이며 Visual Studio 2013을 사용하여) 중단점에서 퀵 워치를 사용하여 변수를 평가하려고 하면 "표현식을 평가하는 데 실패"하는 경우가 많습니다.

asp.net 프로젝트 폴더에서 .suo를 삭제하면 문제가 해결되는 것 같습니다(솔루션을 다시 로드한 후).

이것은 인식된 벌레입니까?Visual Studio 2013에서는 여러 대의 컴퓨터에서 이 기능을 많이 사용할 수 있습니다.

저는 오늘 VS2013을 통해 이 문제를 해결했습니다.

[도구] --> [선택사항] --> [디버깅] --> [일반]으로 이동한 후 "관리되는 호환성 모드 사용"을 선택합니다.

블로그의 스크린샷(아래 URL): 여기에 이미지 설명 입력디버깅을 다시 시작합니다.

아래에 나와 있는 도움은 무엇이 도움이 되었습니까?

C# 디버깅 엔진은 식을 평가하기 위해 CLR 디버거에 크게 의존합니다.이 메시지는 CLR이 간단한 평가를 수행할 수 없는 상태에 있음을 나타내며, 그 이유는 다음과 같습니다.

  • 로컬 변수가 최적화되어 있습니다.
  • 스레드가 GC 안전하지 않은 지점에서 중지됨
  • 이전 함수 호출로 인해 디버거가 잘못된 상태가 되어 추가 평가가 불가능합니다.

이러한 옵션 중 일부는 시간이 지남에 따라 변경되며 다른 답변의 상위 솔루션은 더 이상 존재하지 않는 것 같습니다. 옵션 대화 상자를 검색하면 도움이 될 수 있습니다.

현재 ASPNET Core 프로젝트에서 이 기능을 사용하면 다음과 같은 이점을 얻을 수 있습니다.

여기에 이미지 설명 입력

모듈 로드 시 JIT 최적화 억제(Managed only):모듈이 로드되고 디버거가 연결된 동안 JIT가 컴파일될 때 관리되는 코드의 JIT 최적화를 비활성화합니다.최적화를 사용하지 않도록 설정하면 일부 문제를 쉽게 디버그할 수 있지만 성능이 저하될 수 있습니다.JIT 최적화를 억제하면 사용자가 아닌 코드가 사용자 코드("내 코드")로 나타날 수 있습니다.자세한 내용은 JIT 최적화 및 디버깅을 참조하십시오.

도움이 되지 않는 것 같으면 다시 끄는 것이 좋습니다.

저는 특정 프로젝트를 위해 이것을 직면했고 그 이유는 코스투라입니다.Fody(모든 DLL을 실행 어셈블리에 포함).

이 경우 Costura를 사용하지 않도록 설정할 수 있습니다.포디.

  1. FodyWeber.xml의 코스투라 주석 달기

    <Weavers>
      <!--<Costura />-->
    </Weavers>
    
  2. *.csproj에서 치료 기준 대상(포함된 경우)을 비활성화합니다.

    <!--<Target Name="CleanReferenceCopyLocalPaths" AfterTargets="AfterBuild">
        <Delete Files="@(ReferenceCopyLocalPaths->'$(OutDir)%
         (DestinationSubDirectory)%(Filename)%(Extension)')" />
        <Exec Command="DeleteEmptyDirectory.bat" />
      </Target>-->
    

에 가다Tools --> Options --> Environment --> General -->클라이언트 성능에 따라 시각적 환경 자동 조정 선택사항을 선택합니다.

언급URL : https://stackoverflow.com/questions/21166874/unable-to-evaluate-expression-whilst-debugging