VC6에서 응용 프로그램을 프로파일 링하는 동안 다음 문제가 발생합니다. 나는 응용 프로그램을 프로파일 링 할 때, 프로파일은 다음과 유사한 간단한 게터 방법은 수백 번 수천을 호출되고 있음을 나타내는한다 :VC6 프로파일 러 문제 : 가짜 함수 호출
문제는,이 방법 테스트 어디서나 호출되지 않습니다되어
int SomeClass::getId() const
{
return m_iId;
};
앱. 내가 다음 코드를 변경하는 경우 :
는
int SomeClass::getId() const
{
std::cout << "Is this method REALLY being called?" << std::endl;
return m_iId;
};
프로파일 러는 결코 호출 함수 목록에서 getId
포함되지 않습니다. cout
을 주석으로 처리하고 내가 시작한 곳으로 돌아가서, 130,000 개 이상의 전화를받습니다! 그냥 캐시 된 프로파일 러 데이터 나 손상된 함수 조회 테이블이 아니 었는지 확인하기 위해 각 테스트 사이를 정리하고 다시 작성합니다. 여전히 같은 결과!
아이디어가 있으십니까?
알다시피, 나는 *이 문제가 내 문제의 원인 일 수 있다고 생각합니다.이상한 프로파일 링 정보가 사라지면 맵 파일이 문제라고 생각했지만, 다른 일부 getter가 직접 호출되지 않은 것을 발견했습니다. 최적화를 해제하면 적절한 이름이 표시됩니다. – acanaday
VC6 프로파일 러가 pdb가 아닌 맵 파일을 사용하는 이유는 궁금합니다.하지만 필자는 그 당시에 그렇게했을 가능성이 높다고 생각했습니다. –