Visual Studio 로딩 기호


166

나는 한동안 ColdFusion 프로젝트를 진행하고 있으며 Visual Studio는 적어도 나에게 이상하게 행동하기 시작했습니다.

디버깅을 시작할 때 프로젝트를 빌드하고 배포를 시작했으며 배포가 완료되었으며 프로젝트의 심볼을로드하기 시작했습니다.

그러나 속도가 매우 느려서 왜이 단계를 시작했는지 모르겠습니다. 내가 무엇을 했습니까?

이 심볼 로딩 단계가 필요합니까? 어떻게 비활성화 할 수 있습니까?

도구-> 옵션-> 디버깅-> 기호 대화 상자에는 추가 된 기호 파일 (.pdb) 위치가 없습니다. 그리고 아래 필드에서 프로젝트의 디버그 디렉토리를 가리키고 "기호가 ... 일 때만 위 디렉토리 검색"확인란을 선택했습니다. 심볼로드를 끄려면이 대화 상자를 어떻게 설정해야합니까?

어떤 심볼이로드되는지 모듈 창에서 보았지만 아무 말도하지 않습니다. 무엇이 문제입니까?

여기에 이미지 설명을 입력하십시오


3
나는 스레드에서 모든 대답을 운없이 시도했다.
Johan Larsson

3
일반적으로 심볼을 캐싱해야하며로드하는 데 거의 또는 전혀 걸리지 않아야합니다. 심볼 로딩이 느린 것을 알 수있는 유일한 시간은 심볼이 매우 느린 Microsoft 심볼 서버에서 심볼을로드하는 경우입니다. 덜), 그래서이 문제를 해결하려고 시도하는 좋은 방법은 기호 캐시를 삭제하는 것입니다. 디버그-> 옵션-> 디버깅-> 기호로 이동하여 빈 기호 캐시를 클릭하십시오. 또 다른 문제가 될 수 있습니다.이 질문이 3 세가 된 사람에게 도움이되기를 바랍니다 (:
daniel

답변:


266

디버그-> 모든 중단 점 삭제 ( http://darrinbishop.com/blog/2010/06/sharepoint-2010-hangs-after-visual-studio-2010-f5-debugging ) 그 후 다시 사용할 수는 있지만 수행하십시오. 한번. 어떤 종류의 "유효하지 않은"중단 점도 제거하고로드 기호가 다시 빠릅니다. 나는 며칠 동안이 문제를 쫓고있었습니다.


4
Visual Web Developer 2010 Express 사용자는 Ctrl + Shift + F9를 누르고 "모든 중단 점을 삭제 하시겠습니까?"라는 프롬프트를 표시 할 수 있습니다. 나타날거야. 최소한 하나의 활성 중단 점이 필요합니다 (문제가있는 배경 중단 점이 계산되어 있는지 확실하지 않은 경우). 감사! 훨씬 빨라졌습니다.
Cymen

이 얼마나 별! 정말 고맙습니다.
user489998

실제로 이것은 작동합니다! 놀랄 만한! 이미이 명백한 버그를 Microsoft에보고 한 사람이 있습니까?
real_yggdrasil

당신의 시작, 이것은 며칠 동안 나를 미치게했습니다. 정말 감사합니다!
markpcasey

글쎄, 그건 예기치 않은 일이었다! 정말 효과가있었습니다. 당신은 내 하루를 구 했어요, 정말 고마워요!
tmatuschek

132

느린 로딩의 또 다른 이유는 디버깅 옵션에서 "내 코드 만 활성화"를 비활성화 한 경우입니다. 이것을 가능하게하려면 :

Tools -> Options -> Debugging -> General -> Enable Just My Code (Managed Only) 

이것이 체크되어 있는지 확인하십시오.


은 "내 코드 만"옵션은 비주얼 스튜디오의 일부 익스프레스 버전의 옵션 대화 상자에서 사용할 수 없습니다 (이것은 비주얼 C에서하지만 # 2010 익스프레스입니다)하지만, 다른 수단에 의해 변경 될 수 있습니다 : I 해제 '내 코드 만 할 방법 Visual Basic 2005 Express에서 '? .
피터 Mortensen

3
이것은 "모든 중단 점 삭제"답변이 아니라 나를 위해 수정 한 것입니다.
Mark Brittingham

이것은 Visual Studio에서 최악의 옵션입니다. 심볼 로딩을 비활성화하는 것이 훨씬 낫기 때문에 단순히 심볼이 누락 된 예외 발생 및 스택 프레임을 계속 볼 수 있습니다. (이름 대신 숫자를 읽기가 어렵습니다). 물론, 나는 보통 웹 사이트 코드에서 작업하기 때문에, 실패 할 수있는 IIS가 많이 있습니다. 일반적으로 Microsoft (및 모든 원격) 심볼 서버를 데이터 소스로 선택 해제하면 작동합니다.
ebyrob

반나절을 구했다 ...! : D
Vaibhav Deshmukh

43

도구, 옵션, 디버깅, 기호에서 구성하십시오.

출력 창 (보기, 출력)을보고 일반적으로 수행중인 작업을 확인할 수 있습니다. 실제로 속도가 느리면 아마도 누락 된 기호를 다운로드하기 위해 Microsoft의 기호 서버에 충돌하고 있음을 의미합니다. 시작 시마다 찾을 수없는 각 파일에 대해 세 번의 HTTP 적중이 필요합니다. 때때로 하단의 상태 표시 줄이나 Fiddler에서이를 확인할 수 있습니다. 디버깅하는 동안 디버그, Windows, 모듈에서 심볼을로드 한 모듈을 확인할 수 있습니다.

기호는 유용한 스택 추적 정보를 타사 및 시스템 어셈블리에 가져 오는 것을 의미합니다. 당신은 분명히 자신의 코드를 위해 그것들을 필요로하지만, 나는 그것들이 관계없이로드된다고 생각합니다. 가장 좋은 방법은 해당 메뉴에서 로컬이 아닌 심볼 소스를 끄는 것입니다. 디버그 할 필요가없는 시스템 어셈블리에 많은 심볼을로드하는 경우 일시적으로로드를 비활성화하여 디버그 시작 속도를 높일 수 있습니다. 그러나 종종로드하는 것이 유용합니다.


3
도구-> 옵션-> 디버깅-> 기호 대화 상자에는 추가 된 기호 파일 (.pdb) 위치가 없습니다. 그리고 아래 필드에서 프로젝트의 디버그 디렉토리를 가리키고 "기호가 ... 일 때만 위 디렉토리 검색"확인란을 선택했습니다. 심볼로드를 끄려면이 대화 상자를 어떻게 설정 해야하는지 모르겠습니다.
arnoldino

1
흠, 그때 모르겠다. 디버깅하려면 자체 코드의 기호를로드해야하므로 완전히 끄고 싶지는 않습니다. 그런 다음 모듈 창에서 어떤 심볼이로드되었는지 확인하고 실제로 필요한 심볼을 해결 한 다음 원하지 않는 심볼의 심볼 캐시에서 .pdb를 삭제할 수 있습니까?
Rup

1
'Microsoft 기호 서버 사용'을 확인하고 코드를 한 번 실행하면 모든 기호가 캐시에 있습니다. 이제 속도 향상을 위해 확인란의 선택을 취소 할 수 있습니다.
john ktejik

1
도구-> 옵션-> 디버깅-> 기호에서 Microsoft 기호 서버를 비활성화하면이 문제가 해결되었습니다. 디버깅이 시작될 때까지 30 초를 기다리기 전에 이제 1 초 정도입니다.
Mike Chamberlain

41

이 문제가 발생했습니다.

다음을 탐색하여 수정했습니다.

도구 -> 옵션 -> 디버깅 -> 기호

그런 다음 Symbol 파일 (.pdb) 위치에 대한 모든 로컬이 아닌 소스를 선택 취소

예 : Microsoft Symbol 서버msdl.microsoft.com/download/symbols


23

나는 비슷한 문제에 직면했다. 필자의 경우 WinDbg에서 사용하기 위해 Microsoft 서버에서 다운로드하도록 _NT_SYMBOL_PATH를 설정했으며 설정하면 Visual Studio에서 무시하지 않고 사용할 것입니다. 해당 환경 변수를 제거하면 문제가 해결되었습니다.


이것은 나에게도 문제를 해결했다.
Aasmund Eldhuset

여기도 마찬가지입니다. 기호에서 확인을 취소 할 수 있다고 생각했지만 env var를 제거 / 이름을 바꿔야합니다.
codekaizen

16

Visual Studio 디버깅 /로드에 대해 다음과 같은 답변을 매우 느리게 시도 할 수 있습니다 .

  1. 도구-> 옵션-> 디버깅-> 일반으로 이동하십시오.

  2. "내 코드 만 활성화"옆에있는 확인 표시를 확인하십시오.

  3. 도구-> 옵션-> 디버깅-> 기호로 이동하십시오.

  4. "..."버튼을 클릭하고 캐시 된 심볼을 저장하기 위해 로컬 컴퓨터 어딘가에 새 폴더를 생성 / 선택하십시오. 필자는 "Symbol caching"이라는 이름을 지정하여 Documents-> Visual Studio 2012에 넣었습니다.

  5. "모든 심볼로드"를 클릭하고 Microsoft 서버에서 심볼이 다운로드 될 때까지 기다리십시오. 시간이 걸릴 수 있습니다. 모든 심볼로드 버튼은 디버깅하는 동안에 만 사용할 수 있습니다.

  6. Visual Studio가 Microsoft 서버를 원격으로 쿼리하지 못하게하려면 "Microsoft Symbol 서버"옆에있는 확인 표시를 선택 취소하십시오.

  7. "확인"을 클릭하십시오.

또한 모든 중단 점 (디버그> 모든 중단 점 삭제)을 삭제하십시오.

참조 : Visual Studio 2015 RC1은 심볼을로드하는 동안 디버그 모드에서 중단됩니다


6

나를 위해, 그것은 받아 들인 대답에 표시된 것처럼 중단 점과 관련이있는 것 같습니다. 그러나 모든 중단 점을 삭제하지 않는 두 가지 해결 방법이 있습니다.

  • Visual Studio를 다시 시작하면 일시적으로 문제가 해결 된 것 같습니다.
  • 디버깅하는 동안 "X"단추를 클릭하여 Visual Studio를 닫으면 "디버깅을 중지 하시겠습니까?" 메시지 상자가 나타납니다. 이 메시지 상자가 켜져있는 동안 기호는 보통 속도로로드됩니다. 모든 기호가로드되면 "아니오"를 클릭하여 닫기를 취소 할 수 있습니다.

3
이 미친 해결 방법에 감사드립니다 ( '디버깅을 중지하고 싶습니다'메시지가 있음). 다른 답변을 먼저 시도했지만 지금까지 빨간색 "X"와 '원하는대로 ...'트릭 만 도움이되었습니다. 난 ... 내 정신을 잃고, 감사합니다
pestophagous

2
@que : Heh, 천만에요! 우연히 발견했습니다. VS에는 모달 대화 상자에 대해 별도의 메시지 루프가있는 것처럼 보이므로 아무 이유없이 대화 상자가 팝업되는 경우 언제든지 도움이됩니다 :-)
Cameron

6

이 문제가 발생했습니다. 중단 점을 삭제해도 작동하지 않거나 최소한 자체적으로는 아닙니다. 이 실패 후 도구> 옵션> 디버깅> 기호 및 "빈 기호 캐시"를 보냈습니다.

그런 다음 솔루션을 청소하고 다시 빌드하십시오.

이제 제대로 작동하는 것 같습니다. 따라서 나열된 다른 모든 것을 시도해도 여전히 차이가 없다면 이러한 추가 정보 비트가 도움이 될 수 있습니다 ...


2

필자의 경우 Visual Studio는 내 컴퓨터에서 광학 드라이브를 참조하는 경로에서 타사 PDB를 찾고있었습니다. 트레이에 디스크가 없으면 약 30 초 정도의 Windows 장애가 발생하여 해당 위치에서 PDB를로드하려고 시도함에 따라 Visual Studio의 속도가 느려졌습니다. 자세한 내용은 https://stackoverflow.com/a/17457581/85196 에서 확인할 수 있습니다.


2

나는 같은 문제가 있었고 심볼 로딩을 끈 후에도 Visual Studio에서 모듈 로딩이 굉장히 느 렸습니다.

해결책은 안티 바이러스 소프트웨어 (내 경우에는 NOD32)를 끄거나 더 나은 방법으로 프로세스에 어셈블리를로드하는 경로를 무시하도록 예외를 추가하는 것입니다 (내 경우에는 GAC 폴더 및 임시 ASP입니다) .NET 파일 폴더).


2

내 2 센트

x64 릴리스 모드 (CPU 샘플링)에서 (Visual Studio 2013) 진단 보고서를 가져 오는 중에 비슷한 문제가 발생했으며 필요한 dll 파일의 심볼이로드되는 동안 실행 파일의 심볼이로드되지 않았습니다.

기호 메뉴에서 아무것도 변경하지 않고 솔루션 탐색기에서 실행 파일 스레드의 속성 페이지에서 일부를 변경했습니다.

구성 속성 / 일반 / 관리되는 증분 빌드를 YES로 활성화

구성 속성 / 디버깅 / 환경을 NO로 병합

구성 속성 / C / C ++ / 찾아보기 정보를 YES (/ FR)로 활성화

구성 속성 / 링커 / 예에 증분 연결 사용 (/ INCREMENTAL)

편집 :이 마지막 트릭을 수행

....

구성 속성 / 링커 / 디버깅 / 디버그 정보를 예로 생성 (/ DEBUG)

....

그 후 그것은 효과가 있었고 기호를 잘 넣었습니다. 나는 위의 것 중 하나 이상이 나를 위해 트릭을했다고 확신합니다 (정확하게 확실하지는 않지만) 다른 사람들에게 알리고 시도하고 싶을 것입니다.

평화


1

중단 점 중 하나를 마우스 오른쪽 버튼으로 클릭 한 다음 '위치'를 선택하십시오. 그런 다음 '소스 코드를 원본 버전과 다르게 허용'확인란을 선택하십시오.


1

이미 옵션 사용자 지정에 열중하지 않았다고 가정하고 Visual Studio 2017 디버그 기호 "속도 향상"옵션 :

  1. 에서 Tools -> Options -> Debugging -> Symbols
    가. "Microsoft Symbol 서버"옵션을 활성화하십시오
    . b. "빈 심볼 캐시"를 클릭하십시오
    . c. C:\dbg_symbols또는 기호 캐시를 찾기 쉬운 지점으로 설정하십시오.%USERPROFILE%\dbg_symbols
  2. 디버그를 다시 실행 한 후 모든 기호를 한 번, 처음부터 끝까지 또는 가능한 한 많이로드하십시오.

1A와 2가 가장 중요한 단계입니다. 1B 및 1C는 기호를 추적하는 데 도움이되는 유용한 변경 사항입니다.

앱이 모든 심볼을 한 번 이상로드하고 디버깅이 조기에 종료되지 않은 경우 다음에 디버그를 실행할 때 해당 심볼을 빠르게로드해야합니다.

디버그 실행을 취소하면 새로 도입되어 갑자기 취소 된 경우 "정리"된 것으로 추측되므로 해당 기호를 다시로드해야합니다. 나는 그런 종류의 흐름에 대한 핵심 이론적 근거를 이해하지만,이 경우에는 잘 생각되지 않는 것 같습니다.


0

도구-> 옵션-> 디버깅-> 일반에서 "ASP.NET 용 JavaScript 디버깅 활성화 (Chrome 및 IE)"를 선택 취소하면 미리 설정된 중단 점으로 VS2017 디버거를 시작할 수없는 문제가 해결되었습니다.


0

나를 위해 일한 유일한 것은 코드 유형을 변경하는 것이 었습니다.

에서 프로세스에 연결 창, 나는 변경 : 첨부 로 선택 자동 디버깅 코드의 종류를 확인 후 내 중단 점을 명중했다.

이전에는 기본 코드 만 선택했습니다.


0

Visual Studio가 심볼을 계속로드하고 붙어있는 비슷한 문제가있었습니다.

디버그 옵션에 "명령 줄 인수"를 추가했으며 매개 변수 중 하나가 유효하지 않습니다 (일부 값을 전달해야 함). 여기에 이미지 설명을 입력하십시오

추가 매개 변수를 제거한 후 다시 작동하기 시작합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.