Development Tip

Visual Studio가 특정 DLL에 대한 기호를로드하지 못하도록 방지

yourdevel 2020. 11. 29. 12:22
반응형

Visual Studio가 특정 DLL에 대한 기호를로드하지 못하도록 방지


Microsoft의 심볼 서버를 사용하도록 Visual Studio 2005를 설정했습니다. 또한 모든 프로세스에 후크 DLL을 삽입하는 UltraMon이 설치되어 있습니다. MFC 애플리케이션 디버깅을 시작할 때마다 Visual Studio에서 다음과 같이 말합니다.

"Loading symbols for C:\Program Files\UltraMon\RTSUltraMonHookX32.dll..."

눈 깜짝 할 사이부터 수십 초까지 그 기호들을 절대 찾지 못할 것입니다 ... 귀찮게 보지 말라고 말해도 될까요?

(빈 RTSUltraMonHookX32.pdb파일을 만들려고 했지만 Visual Studio는이 파일이 좋지 않다는 것을 확인하고 계속 찾습니다.)


매우 세밀하게이 작업을 수행 할 수는 없지만 자동 심볼로드를 비활성화 한 다음 모듈 창 (디버그-> Windows-> 모듈)을 통해로드 할 심볼을 수동으로 선택할 수 있습니다.

자동 기호로드를 비활성화하려면

  • 도구-> 옵션-> 디버깅-> 기호
  • "심볼을 수동으로로드 할 때만 위 위치 검색"을 선택합니다.

또한 "_NT_SYMBOL_PATH"환경 변수가 없는지 확인하십시오. 이 var 기호가 있으면 VS 설정에 관계없이로드됩니다.


Visual Studio 2010부터 다음으로 이동할 수 있습니다.

Tools -> Options -> Debugging -> Symbols -> Specify excluded modules

로드하는 데 너무 오래 걸리는 dll 목록을 입력하십시오. 출력 창에서 제공하는 전체 경로를 사용합니다. 와일드 카드 나 간단한 파일 이름을 사용할 수 있습니다.


제 경우에는 "Enable .Net Source Stepping"을 true설정 했기 때문 입니다 .

Tools > Options > Debugging > General. 

false로 설정하는 대신 "Enable .Net Source Stepping"을 false로 자동 설정하는 "Enable Just My Code"를 true로 설정했습니다. 그렇게하기 전에 경고를주었습니다.

Enabling Just my code automatically disabled .Net framework source stepping

이것은 상호 배타적 인 것을 제안 Just My Code하고 .Net source stepping있습니다 .

누군가에게 도움이되기를 바랍니다.


HKEY_CURRENT_USER \ Software \ Microsoft \ Symbol Server \ Exclusions 또는 HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Symbol Server \ Exclusions 또는 % WINDIR % \의 .ini 파일을 통해 다운로드를 시도하지 않는 기호 서버 제외를 설정할 수도 있습니다. system32 \ inetsrv \ Symsrv.ini (헤더 [제외]를 사용하고 각 제외를 자체 줄에 배치). 제외는 단순 패턴 일치이므로 예를 들어 msxml5. *를 사용하십시오.


_NT_SYMBOL_PATH이 동작을 유발할 수있을 뿐만 아니라 _NT_ALT_SYMBOL_PATH지연을 일으키는 환경 변수였습니다.

(WinDbg로 실험 할 때이 변수를 추가했다고 생각합니다)


Visual Studio 2013 Pro에서 Microsoft Symbol Server를 선택하면 VS가 서버의 모든 기호를로드하려고 시도하여 많은 추가 시간이 발생합니다.


  • MS 웹 사이트에서 모든 심볼 패키지를 수동으로로드하고 속도를 위해 SSD 드라이브에 넣습니다. :-)
  • "_NT_SYMBOL_PATH"환경 변수가있는 경우 "SRV e : \ symbols * http://msdl.microsoft.com/download/symbols " 에서 " http://msdl.microsoft.com/download/symbols " 부분을 ​​제거합니다 . , 그래서 당신은 당신의 기호가 귀중하게 다운로드되는 기호 경로 만 있습니다.
  • 이제 기호를 지원하지만 MS에서 다운로드하지 않고 드라이브에서로드합니다.

참고 URL : https://stackoverflow.com/questions/869168/prevent-visual-studio-from-trying-to-load-symbols-for-a-particular-dll

반응형