2016-11-08 12 views
1

WindowsFormsIntegration을 통해 ESRI ArcEngine MapControl을 호스팅하는 C#/WPF lib를 여는 STA 모드의 C++ 프로젝트가 있습니다. 이것은 Visual Studio 2013에서 잘 작동했습니다. wntdll.pdb에서 신비한 중단 점이 발생한 후에 디버깅 및 디버그에서 디버깅하는 동안 ArcEngine 부분을 시작하는 VS2015 업데이트 3로 전환 한 이후로 무섭게 느립니다. "ArcEngineTestApp.exe가 중단 점을 트리거했습니다 . "디버깅 중에 "myapp.exe가 중단 점을 트리거했습니다."- 이후 Visual Studio 2015 업데이트 3에서 느린 심볼 로딩

enter image description here

출력 창에 더 explaination는 (전체 output 참조)이 없습니다. 계속 실행하면 프로그램은 계속 심볼을로드하지만 적어도 Visual Studio 2013보다 느리게 진행됩니다. 중단 점에 도달하는 데 VS 2015 15 초가 지나고로드를 완료하려면 2 분 15 초가 소요됩니다. VS 2013은 ArcEngine을 15-20 초 동안 보여줍니다. 라는 메시지에 휴식 쳤을 때 enter image description here

을 (불행히도 하나가 타임 스탬프를 복사 할 수 없습니다)을 비교 한이 스크린 샷을 참조하십시오 "로드되지 wntdll.pdb"표시됩니다 :

enter image description here

는로드 Microsoft 서버의 pdb가 실패합니다.

이것을 입증하기 위해 우리는 demo project을 만들었습니다 (자세한 내용은 아래 참조).

디버깅 중에 만 발생합니다. 컴파일 된 앱은 훌륭하고 빠르게 작동합니다. 우리가 성공하지 아직 시도 무엇

:

  • 비슷한 문제를 발견하지 않고 "중단 점을 트리거했습니다"라는 메시지를 검색. 성능 문제 알려져
  • 비활성화 설정 (XAML을위한 UI의 디버깅 도구, 진단 도구, IntelliTrace) 디버깅/기호에
    • 활성화에는 기호 서버입니다
    • 을하는 것으로 알려져 있습니다 설치된 VS 확장이 없습니다 성능에 미치는 영향. (전체 목록은 아래를 참조하십시오.)
    • 다른 ArcEngine 버전 시도 (10.3.1 및 10.4)
    • MS 및 ESRI 심볼 서버에서 심볼을로드하고 로컬로 캐시합니다.
    • 모든 중단 점 삭제
    • 나는 내 PC를 완전히 다시 설치했습니다.이제 단 하나의 비주얼 스튜디오가 설치되어 (2015)
    • 다른 PC에서 테스트 (여러 VS 설치) - 같은 동작 설치된 확장

목록 : 데스크탑

  • ArcObjects SDK 통합 추가 기능
  • ArcObjects SDK 통합 유틸리티
  • 개발자 분석 도구
  • 저장을
  • 형식의 문서
  • Microsoft.NET 핵심 도구
  • 마이크로 소프트 ASP.NET 및 웹 도구
  • 마이크로 소프트 ASP.NET 웹 프레임 워크 및 도구
  • 마이크로 소프트 애저 앱 서비스 도구
  • 마이크로 소프트 연결 서비스
  • VS 2015 용 NuGet 패키지 관리자
  • 생산성 Power Tools 2015 (출력 창의 타임 스탬프 만 활성화 됨)
  • Ty 마이크로 소프트 비주얼 스튜디오에 대한 peScript
  • 비주얼 스튜디오 Extensibillity 템플릿

VS 2015합니다 (ArcEngine 호출의 시작부터 시작) Output.

Demo project을 실행하려면 유효한 ArcEngine 라이센스와 ArcEngine SDK가 필요합니다. 라이센스상의 이유로 우리는 ESRI dll을 게시 할 수 없습니다. 그것들을 프로젝트 폴더 "ArcEngineTestLibs"에 복사하십시오. 내가 "오직 관리"에서 "자동"에서 디버깅/디버거 유형의 C++ 프로젝트 설정을 변경하면, 그것은 VS 2013 년으로 다시 빨리 enter image description here

+0

".NET Framework 원본 스테핑 사용"및 "원본 서버 지원 사용"디버깅 옵션을 사용하지 않도록 설정합니까? VS2013에서 정상적으로 작동 했으므로 TOOLS-> Options-> Debugging에서 설정을 VS2015와 비교할 수 있습니다. –

+0

@Jack Zhai 두 옵션은 VS 2013 및 2015에서 사용할 수 없습니다. 디버깅 설정의 스크린 샷을 추가하겠습니다. – gumo

+0

"원래 버전과 정확히 일치하도록 소스 파일 필요"와 "Edie and Continue"를 비활성화하십시오. 혼합 모드 응용 프로그램이라고 했으므로 두 VS 버전에서 프로젝트 속성 -> 구성 속성 -> 디버깅 유형을 확인하십시오. 출력 메시지를 기반으로 pdb 파일을 찾을 수 없기 때문에 Microsoft 기호 서버를 사용하고 디버그하는 동안 Modules 창에서 기호를 수동으로로드하는 것이 좋습니다. –

답변

1

아직 이유를 궁금해 : 2015 Visual Studio에서

디버깅 설정 .

+0

도구 -> 옵션 -> 디버거 설정 아래의 "속성 평가 및 기타 암시 적 기능 평가 활성화"설정을 비활성화하고 다시 확인하십시오. 디버거 유형은 디버그하려는 실제 코드와 관련이 있습니다 (https : // msdn).microsoft.com/en-us/library/kcw4dzyf.aspx –

+0

이 질문은 원래 별도의 질문이거나 원래 질문의 편집 내용이어야합니다. – EJoshuaS