문제

나는 그것이 Linux에만 해당된다는 것을 알았을 때 C 코딩/디버깅을 향상시키기 위해 Valgrind를 조사하고 있었다. 나는 OS를 Linux로 옮기는 데 다른 필요 또는 관심이 없으므로 Windows에 똑같이 좋은 프로그램이 있는지 궁금했다.

도움이 되었습니까?

해결책

더 좋은 상업 도구 :

다른 팁

Jakobengblom2가 지적했듯이 Valgrind에는 도구가 있습니다. 당신이 말하는 어떤 것에 따라 다른 Windows 카운터 부품이 있습니다. 나는 여기에서 OSS 또는 무료 도구 만 언급 할 것입니다.

1. Memcheck :

Dr. Memory. 비교적 새로운 도구이며 Windows 7에서 매우 잘 작동합니다. 제가 가장 좋아하는 기능은 보고서에서 동일한 누출의 할당 스택을 그룹화한다는 것입니다.

http://code.google.com/p/drmemory/

나는 또한 umdh를 사용했다. http://support.microsoft.com/kb/268343 )) 조용하고 유용하고 설정하기 쉽다는 것을 알았습니다. Win2000에서 Win7까지 작동합니다.

Appverifier는 Windows Native Code Developers를위한 스위스 나이프가 있어야합니다. "메모리"체커는 비슷한 작업을 수행합니다.http://msdn.microsoft.com/en-us/library/dd371695%28v=vs.85%29.aspx

2. CallGrind :

내가 가장 좋아하는 것은 매우 잠 들어 있습니다 ( http://www.codersnotes.com/sleepy ) 작지만 매우 유용하고 사용하기 쉽습니다.

더 많은 기능이 필요한 경우 AMD CodeAnalyst ™ Performance Analyzer는 무료입니다.http://developer.amd.com/documentation/videos/pages/introductiontoamdcodeanalystperformanceanalyzer.aspx

Windows Performance Analysis Tools는 Microsoft가 없으며 사용하기 쉽지는 않지만 시간을 기꺼이 보내려면 작업을 수행 할 수 있습니다. http://blogs.microsoft.co.il/blogs/sasha/archive/2008/03/15/xperf-windows-performance-toolkit.aspx다운로드 :http://msdn.microsoft.com/en-us/performance/cc752957

3. Massif :

Windows에서 유사한 (정확히 일치하지 않음) 무료 도구는 다음과 같습니다.

sysinternals의 vmmap : http://technet.microsoft.com/en-us/sysinternals/dd535533

WINDBG의 힙 명령 : http://hacksoflife.blogspot.com/2009/06/heap-debugging-memoryresource-leak-with.html

4. 캐시 그린드 :

위에서 언급 한 Windows Performance 도구에는 특정 레벨의 L2 캐시 미스 프로파일 링 기능이 있지만 캐시 그라인드만큼 좋고 사용하기 쉽지는 않습니다.

5. DRD :

Windows에서는 무료로 강력하고 강력한 것을 찾지 못했지만 약간 가까운 Windows를위한 유일한 무료 도구는 Appverifier의 "잠금"체커입니다.http://msdn.microsoft.com/en-us/library/dd371695%28v=vs.85%29.aspx

Valgrind + Wine을 사용하여 Windows 앱을 디버깅하지 않겠습니까? 보다 http://wiki.winehq.org/wine_and_valgrind

(Chromium은 이것을 사용하여 Windows 버전에서 메모리 오류를 확인하고 Build.chromium.org를 참조하고 실험 또는 메모리 폭포를보고 와인을 검색하십시오.)

Dr. Memory도 있습니다. dynamorio.org/drmemory.html을 참조하십시오

Visual C ++의 경우 시도하십시오 시각적 누출 감지기. 내가 그것을 사용했을 때, 그것은 메모리 누출을 감지했습니다. new 누출의 소스 코드에서 실제 줄을 호출하고 반환했습니다. 최신 릴리스는에서 찾을 수 있습니다 http://vld.codeplex.com/.

사용중인 Windows의 개발 환경에는 자체 도구가 포함되어있을 수 있습니다. 예를 들어 Visual Studio는 당신을 허용합니다 메모리 누출을 감지하고 분리합니다 귀하의 프로그램에서

도구를 나열하고 싶습니다. 희망은 유용 할 것입니다.

이것을 읽으십시오 기사 자세한 내용은

  1. 정화하십시오
  2. 바운드 체커
  3. Coverity (기본적으로 코드 분석기이지만 정적에서 메모리 누출을 포착합니다)
  4. 글로우 코드
  5. dmalloc
  6. ccmalloc
  7. njamd
  8. yamd
  9. Valgrind
  10. mpatrol
  11. ++를 보장합니다

노력하다 두마

Windows 용 디버깅 도구의 PageHeap.exe 부분이 있습니다. 무료이며 기본적으로 사용자 정의 메모리 할당 기/거래소입니다.

보다 http://support.microsoft.com/kb/286470

비주얼 스튜디오와 함께 나는 일반적으로 사용합니다 시각적 누출 감지기 또는 Win32 API 호출 인 _crtDumpMemoryLeaks (). 둘 다 화려하지는 않지만 그들은 일을 끝냅니다.

나는 사용할 기회가 있었다 Compuware DevPartner Studio 과거에는 정말 좋았지 만 꽤 비쌉니다. 더 싼 솔루션이 될 수 있습니다 글로우 코드, 방금 5.x 버전으로 작업했으며 디버그에 필요한 프로세스에 부착하는 데 약간의 문제가 있었음에도 불구하고 잘 작동했습니다.

나는 사랑했다 메모리 유효성 검사기, 소프트웨어 Verification이라는 회사에서.

Viusual Studio는 메모리 누출 자체를 감지하는 데 도움이 될 수 있습니다. 보다 Microsoft Visual C ++ 팁 및 요령 -> "메모리 누출"섹션. 이것도 참조하십시오 그렇게 게시하십시오

실제 추적은 Visual Studio의 팀 편집에서만 가능합니다.

"보기"소스 테스트 도구"유사한 도구 목록에 대한 소프트웨어 QA 테스트 및 테스트 도구 리소스 페이지를 연결합니다.

프로파일 링을 위해 과거에 Boundschecker, DevPartner Studio 및 Intel V-Tune을 사용했습니다. 나는 v-tune을 가장 좋아했습니다. 다양한 인텔 칩셋을 모방 할 수 있으며 해당 플랫폼을 최적화하는 방법에 대한 힌트를 제공합니다.

하다 Jochen Kalmbach의 메모리 누출 감지기 자격?

추신 : 최신 버전의 URL은 기사의 주석 스레드 어딘가에 묻혀 있습니다.

LeakDiag, UMDH, APP VERIFIER, DEBUGDIAG는 코드의 견고성을 향상시키고 메모리 누출을 찾는 데 유용한 도구입니다.

부스트 테스트 라이브러리는 메모리 누출을 감지 할 수 있습니다.

메모리와 스레딩 문제를 모두 감지하는 데 도움이되는 Intel의 Inspector XE 제품을 사용해보십시오. http://software.intel.com/en-us/articles/intel-inspector-xe/

아마도 Codesnitch는 당신이 뒷받침하는 것이 될 것입니까? http://www.entrek.com/codesnitch.html

Borland/Codegear/Embarcadero C ++ Builder로 개발중인 경우 CodeGuard를 사용할 수 있습니다.

다소 모든 프로파일 러에는 메모리 누출 검사를 포함하고 메모리가 할당 될 때 스택을 표시합니다.

추천 할 수 있습니다 인텔 병렬 검사관. 사용하기 간단하고 재 컴파일이 필요하지 않습니다. 시험판은 30 일 동안 실행됩니다.

글로우 코드 그리고 AtromatedQa 그러한 성능도 포함하십시오. 그들은 모두 무료 시험을 제공합니다.

대조적으로 Compuware DevPartner (일명 BoundSchecker)는 속도가 느려져 오류를 확인할 때 애플리케이션이 느려집니다. Boundschecker는 64 비트 EVSRINS에서 전혀 작동하지 않습니다. 우리는 그 도구를 포기했습니다.

내가 사용한 최고의 도구는입니다 DevPartner BoundSchecker - 무료는 아니지만 평가 기간이 있습니다.

목록을위한 또 다른 메모리 도구 : 메모리 유효성 검사기.

자유롭지는 않지만 Purify 또는 Boundschecker만큼 비싸지 않습니다.

Mingw를 두려워하지 않는다면 여기에 일부 링크가 있습니다 (일부는 MSVC와 함께 작동 할 수도 있습니다) ...http://betterlogic.com/roger/?p=1140

우리는 방금 완료하고 있습니다 메모리 안전 점검 도구 Windows의 경우 GCC 및 Micrsoft Visual C (아직 C ++가 아님)를 처리하고 베타 테스터를 찾고 있습니다.

2011 년 6 월 12 일 편집 : 더 이상 베타가 아님, 이제 GCC 및 Microsoft Visual Studio C의 프로덕션 C.

오늘이 SF 프로젝트를 찾았습니다.

http://sourceforge.net/p/valgrind4win/wiki/home/

그들은 Valgrind를 창문으로 포팅하고 있습니다. 아마 몇 년 안에 우리는 창문에 신뢰할 수있는 valgrind를 가질 것입니다.

이 질문을 확인하십시오. 창문을위한 좋은 Valgrind 대용품이 있습니까? . Valgrind의 일반적인 대체물이 요청되지만 주로 레이스 조건 탐지가 아닌 메모리 누출 감지기에 대해 논의합니다.

C ++ 메모리 누출/손상을 찾는 데 탁월한 작업을 수행하는 보험 ++ 및 초기화되지 않은 변수, 포인터 오류, 문자열 등과 같은 다른 많은 버그를 사용했습니다. 당신의 코드 .. 당신은 트레일 버전에 대해 시도 할 수 있습니다 ..

당신은 어떤 모질라를 읽고 싶을 수도 있습니다 하고있다 메모리 누출과 관련하여. 도구 상자에있는 하나의 도구는 Hans Boehm 쓰레기 수집기입니다. 메모리 누출 감지기.

당신은 시도 할 수 있습니다 RuntimeChecker 시행 된 것입니다 IBM Purify 재판..

무료 솔루션은 Visual Studio에서 다음 코드를 사용하는 것입니다.

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

모든 CPP 파일의 상단에 이것을 작성하십시오. 이렇게하면 디버그 실행을 중지 할 때 애플리케이션의 메모리 누출이 감지되어 출력 창에 나열됩니다. 메모리 누출 라인을 두 번 클릭하면 메모리가 할당되어 해제되지 않은 라인이 표시됩니다. 이것은 당신에게 도움이 될 수 있습니다 : http://www.flipcode.com/archives/how_to_find_memory_leaks.shtml

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