2011-12-21 4 views
5

Visual Studio 2010을 사용하여 C#/managed C++/관리되지 않는 C++를 혼합 한 도구가 있습니다. 코드는 실제로 .exe (mybinary.exe) 및 .dll (mylib.dll)에 분산되어 있습니다.Very Sleepy 프로파일 러에서 C++ 바이너리의 함수 이름을 인식하려면 어떻게해야합니까?

릴리스 빌드에서 PDB 파일을 생성하기 위해 dll과 exe에 대한 프로젝트의 빌드 설정을 지정했습니다. 나는 PDB 파일이 exe와 pdb가 들어있는 디렉토리와 같은 디렉토리에 있는지 확인했다. 그러나이 프로그램을 디버깅 할 때 여전히 함수의 이름을 볼 수 없다. 주소가 나타납니다. 나는 아주 슬리피의 첫 번째 화면에서 프로그램을 선택하면 여기에 내가 맨 아래에있는 작은 상태 표시 줄에 무엇을 얻을 관련 발췌입니다 : MYLIB하는 mylib.pdb 일치에 문제가있는 것처럼

DBGHELP: mybinary.vshost - public symbols 
     C:\Users\(me)\AppData\Local\sleepy\vshost32-clr2.pdb\(long hex string)\vshost32-clr2.pdb 
... 
DBGHELP: No debug info for C:\myproj\mylib.dll. Searching for dbg file 
DBGHELP: C:\myproj\mylib.dbg - file not found 
DBGHELP: C:\myproj\dll\mylib.dbg - path not found 
DBGHELP: C:\myproj\symbols\dll\mylib.dbg - path not found 
SYMSRV: C:\Users\peastlund\AppData\Local\sleepy\mylib.dbg\4EF1F48B13c000\mylib.dbg not found 
DBGHELP: C:\myproj\mylib.dbg - file not found 
DBGHELP: C:\myproj\dll\mylib.dbg - path not found 
DBGHELP: C:\myproj\symbols\dll\mylib.dbg - path not found 
DBGHELP: C:\myproj\mylib.dbg - file not found 
DBGHELP: C:\myproj\mylib.dll missing debug info. Searching for pdb anyway 
DBGHELP: mylib - public symbols 
     C:\myproj\mylib.pdb - unmatched 
... 
DBGHELP: MOD: mybinary.vshost 
... 
DBGHELP: mybinary - private symbols & lines 
     C:\myproj\mybinary.pdb 

그래서 그것은 본다. dll, 어떤 이유인지 모르겠지만 확실하지는 않지만 mybinary.exe의 함수 중 적절한 주소를 얻지 못합니다. 최근에 설치 한 새 컴퓨터가있어서 "일부 라이브러리가 구식이 아닙니다"라는 문제가 아닙니다.

누구든지이 문제를 해결할 수 있다면 매우 감사합니다!

편집 : 사실 최적화 된 코드에만 해당되는 것은 아닙니다. 다른 프로파일 러는 최적화 된 C++에 대한 몇 가지 문제를 가지고 있었기 때문에 Very Sleepy로 바꿨습니다.하지만 테스트에서 나는 Very Sleepy를 사용하여 디버그 모드로 컴파일 할 때도 함수 이름을 얻을 수없는 것처럼 보였습니다.

답변

0

확인 다음

  1. 당신은
  2. 이 먼저 응용 프로그램을 시작 후 졸린를 시작하고
  3. 정지 프로파일을 프로파일 링하여 로컬 경로에 기호 검색 경로 (도구 -> 옵션)을 설정 한 응용 프로그램이 종료되기 전에
관련 문제