창문을위한 좋은 Valgrind 대용품이 있습니까?
-
03-07-2019 - |
문제
나는 그것이 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는 당신을 허용합니다 메모리 누출을 감지하고 분리합니다 귀하의 프로그램에서
도구를 나열하고 싶습니다. 희망은 유용 할 것입니다.
이것을 읽으십시오 기사 자세한 내용은
- 정화하십시오
- 바운드 체커
- Coverity (기본적으로 코드 분석기이지만 정적에서 메모리 누출을 포착합니다)
- 글로우 코드
- dmalloc
- ccmalloc
- njamd
- yamd
- Valgrind
- mpatrol
- ++를 보장합니다
노력하다 두마
Windows 용 디버깅 도구의 PageHeap.exe 부분이 있습니다. 무료이며 기본적으로 사용자 정의 메모리 할당 기/거래소입니다.
비주얼 스튜디오와 함께 나는 일반적으로 사용합니다 시각적 누출 감지기 또는 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