2013-03-05 2 views
3

거대한 C++ 빌더 2010 여러 개의 DLL이 빌드되고 연결되어있는 응용 프로그램입니다. 오랜 시간 동안 누적되는 메모리 누수를 추적하는 가장 좋은 방법은 무엇입니까? ? 문제가 발생하기 전에 응용 프로그램이 1 주일 정도 대상 시스템에서 실행 중이어야한다고 가정 해보십시오. AQ Time과 비슷한 프로파일 링 어플리케이션이 없다고 가정 해 봅시다. 그냥 표준 IDE 및 아마도 일부 코드를 사용하여.메모리 누수를 추적하는 가장 좋은 방법은 무엇입니까

나의 초기 아이디어는 각 클래스 유형에서 사용 된 인스턴스 및 공간의 수를 추적하는 모든 클래스에서 사용할 매크로를 작성하는 것이 었습니다.

답변

2

RTL은 메모리 관리자로 FastMM을 사용합니다. FastMM은 메모리 누수보고 및 추적을 지원합니다. RTL에 포함 된 FastMM의 기본 버전은 제거 된 버전이지만 최소한의 누수보고 기능을 지원합니다. RTL의 글로벌 ReportMemoryLeaksOnShutdown 변수를 런타임에 true로 설정할 수 있으며, 응용 프로그램이 닫힐 때 FastMM이 기본 누수 보고서를 생성합니다. 고급 사용법을 보려면 FastMM 정식 버전을 다운로드하여 응용 프로그램에 추가하면 RTL의 기본 버전이 대체됩니다. 그런 다음 원하는대로 FastMM을 구성 할 수 있습니다.

+0

슈퍼는 원하는 것과 똑같이 들린다 – inquam

+0

C++ 응용 프로그램의 표준 FastMM을 바꾸는 방법에 대한 좋은 참고 자료가 있습니까? 델파이에 관한 정보가 있지만 C++에 관한 정보는 없습니다. – inquam

+0

FastMM SourceForge 웹 사이트에서 다운로드 할 수있는 소스의 "CPP Builder Support"하위 폴더에있는 "FastMM4BCB.cpp"파일의 설명서를 읽으십시오. –

관련 문제