문제

내가 사용하려고 boundschecker 을 분석하고 오히려 복잡한 프로그램입니다.실행하는 프로그램 boundschecker 는 거 너무 느리게 될 그것의 사용이 소요되기 때문에 나에게 거의 하루를 실행하는 프로그램을 지점 코드에서는 생각이 문제가 존재합니다.할 수 있는 사람이 나는 방법에 대한 아이디어를 검사하는 특정 부분의 소프트웨어를 사용하여 boundschecker(DevPartner)Visual Studio2005?

사전에 감사를 위해 모든 당신의 도움이!

도움이 되었습니까?

해결책

나는 몇 년 전에 Boundschecker를 마지막으로 사용했으며 같은 문제가있었습니다. 대규모 프로젝트를 사용하면 모든 것이 너무 느리게 실행되어 쓸모가 없습니다. 우리는 그것을 버렸다.

그러나 우리는 여전히 기능 중 일부가 필요했지만 전체 프로그램은 아닙니다. 그래서 우리는 스스로해야했습니다.

우리의 경우, 우리는 주로 메모리 누출을 시도하고 추적하는 데 사용했습니다. 그것이 당신의 목표라면 다른 옵션이 있습니다.

  1. Visual Studio는 프로그램이 종료 될 때 메모리 누출에 대해 꽤 잘합니다.
  2. 그것은 그들이 생성 된 순서대로 누출을보고합니다.
  3. 소스 파일이 상단에 있으면 유출 된 메모리가 생성 된 위치를 정확히 알려줄 것입니다.

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

그것들은 많은 도움이되지만 종종 충분하지 않습니다. 모든 곳에서 스 니펫을 추가하는 것이 항상 가능하지는 않습니다. 공장 수업을 사용하는 경우 메모리가 어디에 할당되었는지 아는 것은 전혀 도움이되지 않습니다. 따라서 다른 모든 것이 실패하면 #2를 활용합니다.

다음과 같은 것을 추가하십시오.

#define LEAK(str) {char *s = (char*)malloc(100); strcpy(s, str);}

그런 다음 "Leak ("Leak1 ");"로 코드를 후추; "; 또는 무엇이든. 프로그램을 실행하고 종료하십시오. 새 누출 된 줄은 기존 누출을 둘러싼 Visual Studio의 누출 덤프에 표시됩니다. 누출 진술을 계속 추가/이동하고 정확한 위치를 정확히 지적 할 때까지 검색을 좁히기 위해 프로그램을 다시 실행하십시오. 그런 다음 누출을 수정하고 디버깅 누출을 제거하면 모두 설정됩니다!

다른 팁

BoundsChecker 트랙에는 모든 메모리 할당 및 릴리스 극한의 세부 사항입니다.그것은 알고,예를 들어,이러한 메모리 할당해 수행되었 C runtime,힙로에서 찍은 Win32 힙는 생활을 시작했으로 할당되는 메모리에 의해 VirtualAlloc.는 경우 응용 프로그램을 계기(FinalCheck),그것은 또한 자세한 정보는 포인터를 참조합니다.

이것은 이유 중 하나의(많은)는 이유한 것은 속도가 느립니다.

는 경우 BC 을 연결하는 응용 프로그램 늦은,그것이 없이 데이터의 내장까지,그리고 중 하나(1)파고 모든 걸 한 번에,또는(2)출 추측에 대한 것들입니다.도 솔루션은 매우 실제적입니다.

방법 중 하나 밝게 BoundsChecker 은 제외하여 계측에서 모든지만 몇 가지 모듈이 있습니다.난 먹지 않기 때문에 당사는 누출되었을 필요로 하지 않을 것 BoundsChecker.내가 일반적으로 추천하는 데 사용하는 기원전의 활성화 모드를 먼저 체크만으로 메모리 추적 가능합니다.당신이 놓치 API 를 검증하지만 당신은 항상 다시 실행하는 별도로.를 실행한 후에 활성을 확인하고 당신은 단서에 관한 모듈을하는 경향이 문제가 될만,다음을 수행할 계측을 위해 모듈의 관심과 그들의 종속성입니다.우리가 알고 있는 최종 확인을 귀찮게 느리지만 Mistiano 올바르게국으로,최종 확인 뿐만 아니라는 기원전을 유지하는 그래프의 모든 블록 할당뿐만 아니라 모든 포인터와 컨텍스트습니다.거기에 매직에 어떻게 최종 확인할 수 있는 네가 누수 및 손상 지점에서 발생하지만 응용 프로그램 종료 또는 오류입니다.뻔뻔한 플러그:나는 작업에 DevPartner 팀이 있습니다.우리는 발표를 DPS10.5on February4,2011 64 응용 프로그램 지원에서 BC.과는 달리 상대적으로 고대의 해줬되 BC64Itanium 만 제공되는 활성 확인,DPS10.5 제공한 전 최종 확인에 대한 지원 x64 응용 프로그램,모두 순수한 C++고에 대한 기본 모듈을 실행합니다.NET 프로세스입니다.보 microfocus.com 아래에 MF 개발자에 대한 상세정보.

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