MS의 Symbol Server로 .net 코드를 디버깅하여 VS는 변수의 값을 표시하지 않습니다.

StackOverflow https://stackoverflow.com/questions/294738

  •  08-07-2019
  •  | 
  •  

문제

.NET 용 Microsoft 디버그 기호를 사용하여 ASP.NET 웹 사이트 코드를 디버깅 할 때. VS2008에 정보를 가져 오라고 말한 Microsoft Symbol Server.

Cannot obtain value of local or argument 'cookie' as 
it is not available at this instruction pointer, possibly because 
it has been optimized away.

내가 사용하는 코드가 최적화 된 컴파일 된 코드를 사용하는 것과 같습니다. 이 경우 최적화하지 말라고 말할 수 있습니까? 디버그 구성 중입니다. 디버그 할 수 없기 때문에 매우 실망 스럽습니다. 왜냐하면 코드를 밟을 때 로컬 변수의 값을 보거나 검색 할 수 없기 때문입니다.

단서/생각이 있습니까?

도움이 되었습니까?

해결책

Shawn Burke는 이것을 그의 비활성화하는 방법을 설명했습니다. 블로그.

먼저 JIT 최적화없이 Visual Studio를로드하는 CMD를 만듭니다.

set COMPLUS_ZapDisable=1
cd /d "%ProgramFiles%\Microsoft Visual Studio 9.0\Common7\ide\"
start devenv.exe
exit

Visual Studio Project에 있으면 다음 단계를 수행하십시오.

1) 프로젝트 파일을 마우스 오른쪽 버튼으로 클릭하고 "속성"을 선택하십시오.

2) "디버그"탭을 선택하고 선택 취소 "비주얼 스튜디오 호스팅 프로세스 활성화"

3) 디버거에서 응용 프로그램을 시작하십시오.

다른 팁

정상적인 .NET 응용 프로그램의 경우 시작 바이너리 옆의 .ini 파일로 JIT 최적화를 사용하지 않을 수 있습니다. 다음은 이것이 어떻게 달성되는지에 대한 링크입니다

http://blogs.msdn.com/jaredpar/archive/2008/08/29/disabling-jit-optiomations-while-debugging.aspx

디버깅 asp.net은 약간 다르며 이것이 당신에게 효과가 있는지 확실하지 않습니다. Light Weight Web Server (Cassini)를 사용하여 로컬로 디버깅하는 경우이 트릭을 Cassini 자체에 적용 할 수 있습니다. IIS 내부에서 웹 서버에서 직접 디버그 한 경우이 트릭이 작동하는 방법을 모르지만 올바른 방향으로 이어질 수 있기를 바랍니다.

많은 연구를 마친 후, IIS7/Windows 7 X64에 따라 IIS 호스트 애플리케이션에 연결할 때이 "Complus_ZapDisable"기술 작업을 수행 할 수있는 방법을 찾을 수있었습니다.

필자의 경우, 나는 Reflector Pro가 구성한 기호를 사용하고 있지만, OP가 요청한 Microsoft 기호에도 효과가 있다고 생각합니다.

트릭은 해당 환경 변수를 설정하여 해당 설정을 활성화하여 시작되도록 적절한 장소를 찾는 것입니다. 이렇게하려면 "hkey_local_machine system currentControlset Control Session Manager Environment"의 레지스트리에 "complus_zapdisable"이라는 문자열 키를 추가하십시오. 키 값을 "1"로 설정하면 트릭을 수행해야합니다. 생산에서 이것을하지 마십시오 =)

저자 인 Clive Tong에 대한 Kudos 이 게시물 Red Gate에서 올바른 방향으로 나를 가리키는 것에 대한.

.NET 프레임 워크 코드는 최적화되므로 최적화 된 코드에 존재하지 않으므로 모든 변수를 볼 수 없습니다. .NET 프레임 워크 자체 내부에서 디버그하려고한다고 가정합니다. 불행히도 당신이 할 수있는 일은 없습니다.

마지막으로,이 솔루션은 aspnet_wp.exe visual studio 2008, .NET Framework 2.0에 첨부 할 때 나에게 효과가있었습니다. 2.0 : 프로젝트 속성으로 이동하여 빌드 탭, 고급 버튼 -> 출력 디버그 정보를 "전체"로 설정했습니다. 이것이 누군가를 돕기를 바랍니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top