문제

나는 문서를 읽고 설명 된 명령을 사용했지만 어떤 이유로 어떤 이유로 어떤 기호도 얻지 못하는 것 같지 않습니다. 제가 시도한 앱의 최상위 세트를 제외한 모든 것에 대한 요약 테이블의 함수 열에 일련의 "알 수없는"이 있습니다. 디버그 .... Enviromental 변수를 Microsoft 서버와 앱의 PDB를 오염시키는 Direcories로 설정했습니다. 또한 요약 테이블을 가져 오기 전에 "로드 기호"항목을 선택해야했습니다.

내가 읽고 있던 정보에 아크로드하는 것은 기호를로드하는 동안 태블이 표시되는 데 약간의 시간이 걸리야하지만, 나에게는 테이블이 거의 즉시 표시되었으며 Sprite.exe-> sprite.exe에서 가장 많은 항목 만 기능 이름이 있습니다. 기능에 대한 Othe 행은 공백 또는 "알 수없는"입니다.

Vista SP1을 사용하고 있습니다.

이것은 내가 사용한 배치 파일입니다. 시볼이로드되는 것을 막을 수있는 일을 했습니까?

REM start profiler
xperf -on PROC_THREAD+LOADER+INTERRUPT+DPC+PROFILE^
 -stackwalk profile -minbuffers 16 -maxbuffers 1024 -flushtimer 0^
 -f tmp.etl
REM run the app we want to profile
sprite.exe
REM stop
xperf -d profile.etl
REM set symbol path
set _NT_SYMBOL_PATH = ^
 C:\Projects\C++\fl lib\bin;^ REM dlls
 C:\Projects\C++\fl lib\samples\bin;^ REM main exe
 SRV*c:\symbols*http://msdl.microsoft.com/download/symbols
REM display profile
xperf profile.etl
도움이 되었습니까?

해결책

어떤 버전의 dbghelp.dll 사용하고 있습니까? PDB 기호를 사용하는 데 어려움이있었습니다 kernrate 및 버전을 사용할 때 다른 유틸리티 dbghelp.dll 설치되어 있습니다 %SystemRoot%\system32.

복사해야 할 수도 있습니다 dbghelp.dll 그리고 symsrv.dll 최근 Windows 용 디버깅 도구에서 Xperf가 찾을 수있는 디렉토리로 가득 차 있습니다.

또한 '='전에 공간을 제거해야합니다. 그렇지 않으면 정의하고 있습니다._NT_SYMBOL_PATH"변수 (이름의 후행 공간 포함).

줄 끝에 의견을 포함하여 작동하지 않습니다. '^'와 같은 라인 연속 문자는 일반적으로 라인의 마지막 캐릭터 여야합니다. 그 진술을 실행했을 때 (XP에서) 결국 "_NT_SYMBOL_PATH" 동일 "C:\Projects\C++\fl lib\bin; REM dlls"그리고 다음 줄에 대한 오류.

다른 팁

설정해보십시오

TRACE_FORMAT_SEARCH_PATH

환경 변수. 그렇지 않은 경우 Tracepdb.exe를 사용하여 PDB에서 TMF 파일을 수동으로 추출해야 할 수도 있습니다 (또는 적어도 Sym* 경로 대신 일반 경로를 사용). 이것은 ETL Traces / Xperf 사용의 가장 성가신 부분입니다.

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