Windows를 대체할 만한 Valgrind가 있습니까?
C 코딩/디버깅을 개선하기 위해 Valgrind를 조사하던 중 Linux 전용이라는 것을 알게 되었습니다.OS를 Linux로 이행할 필요성도 관심도 없기 때문에 Windows용으로도 마찬가지로 좋은 프로그램이 있는지 궁금했습니다.
jakobengblom2가 지적했듯이, valgrind는 한 벌의 도구를 가지고 있다.어떤 것을 말하는지에 따라 다른 창문의 카운터 부분이 있습니다.여기서는 OSS나 무료 툴만 언급하겠습니다.
1. MemCheck:
메모리 박사이 툴은 비교적 새로운 툴로 Windows 7에서 매우 잘 작동합니다.제가 가장 좋아하는 기능은 보고서에 있는 동일한 유출의 할당 스택을 그룹화하는 것입니다.
http://code.google.com/p/drmemory/
UMDH(http://support.microsoft.com/kb/268343)도 사용해 보았습니다만, 조용하고 셋업이 간단합니다.Win2000부터 Win7까지 동작합니다.
AppVerifier는 윈도 네이티브 코드 개발자에게 꼭 필요한 swissknife로, "메모리" 체커도 비슷한 작업을 수행합니다.http://msdn.microsoft.com/en-us/library/dd371695%28v=vs.85%29.aspx
2. 콜그린드:
제가 가장 좋아하는 것은 매우 졸린 것입니다(http://www.codersnotes.com/sleepy). 작지만 매우 유용하고 사용하기 쉽습니다.
더 많은 기능이 필요한 경우 AMD Code Analyzer™ Performance Analyzer를 무료로 이용하십시오.http://developer.amd.com/documentation/videos/pages/introductiontoamdcodeanalystperformanceanalyzer.aspx
Windows Performance Analysis 툴은 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. 마시프:
윈도우의 프리 툴은 다음과 같습니다(정확하게 일치하지는 않습니다.
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 Tools는 일정 수준의 L2 캐시 미스 프로파일링 기능을 갖추고 있지만 Cachegrind만큼 뛰어나고 사용하기 쉽지는 않습니다.
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 를 참조해, 실험용 또는 메모리폭포를 참조해, 와인을 검색합니다).
메모리 박사도 있습니다.dynamorio.org/drmemory.html 를 참조해 주세요.
기타 유용한 상용 도구:
Visual C++의 경우 Visual Leak Detector를 사용해 보십시오.사용했을 때 메모리 누수가 검출되었습니다.new
를 호출하여 누출의 소스 코드로 실제 회선을 반환했습니다.최신 릴리스는 http://vld.codeplex.com/ 에서 구할 수 있습니다.
사용하고 있는 Windows 의 개발 환경에는, 독자적인 툴이 포함되어 있는 경우가 있습니다.예를 들어 Visual Studio를 사용하면 프로그램에서 메모리 누수를 감지하고 격리할 수 있습니다.
나는 몇 가지 도구를 나열하고 싶은데, 도움이 될 것이다.
상세한 것에 대하여는 이 기사를 읽는다.
- 정화하다
- 경계 검사기
- Coverity(기본적으로는 코드아나라이저이지만 스태틱으로 메모리 누수가 검출됩니다)
- 예열 코드
- dmalloc
- ccmalloc
- 걸림
- YAMD
- 발그린드
- mpatrol
- 보증++
DUMA를 시험
Windows 디버깅툴에는 Pageheap.exe 부분이 있습니다.이는 무료이며 기본적으로 사용자 지정 메모리 할당/할당 해제입니다.
http://support.microsoft.com/kb/286470 를 참조해 주세요.
Visual Studio와 조합하여 일반적으로 Visual Leak Detector 또는 win32 API 호출인 _CrtDumpMemoryLeaks()를 사용합니다.둘 다 화려하지는 않지만 일을 해낸다.
과거에 Compuware DevPartner Studio를 사용할 기회가 있었는데, 정말 좋았지만, 가격이 상당히 비쌉니다.더 저렴한 솔루션은 GlowCode일 수 있습니다.저는 5.x 버전으로 작업했을 뿐이고, 디버깅해야 하는 프로세스에 접속하는 데 문제가 있었지만, 꽤 잘 동작했습니다.
Software Verification이라는 회사의 Memory Validator를 매우 좋아합니다.
Viusual Studio에서는 메모리 누전 자체를 검출할 수 있습니다.「Microsoft Visual C++ 힌트」-> 「메모리 리크」섹션을 참조해 주세요.SO의 이 투고도 참조해 주세요.
실제 트레이스는 Visual Studio의 Team Edition에서만 가능합니다.
유사한 도구 목록은 소프트웨어 QA 테스트 및 테스트 도구 리소스 페이지의 "소스 테스트 도구" 링크를 참조하십시오.
저는 프로파일링에 BoundsChecker, DevPartner Studio 및 Intel V-Tune을 사용한 적이 있습니다.저는 V-Tune이 가장 마음에 들었습니다.여러 인텔 칩셋을 에뮬레이트할 수 있고 플랫폼에 최적화하는 방법에 대한 힌트를 얻을 수 있습니다.
Jochen Kalmbach의 메모리 누출 탐지기는 자격이 있나요?
추신: 최신 버전의 URL은 기사의 댓글 스레드 어딘가에 있습니다.
Leak Diag, UMDH, App Verifier, Debug Diag는 모두 코드의 견고성을 향상시키고 메모리 누수를 발견하는 데 유용한 도구입니다.
부스트 테스트 라이브러리는 메모리 누수를 검출할 수 있습니다.
정화호는 어때?
인텔의 인스펙터 XE 제품을 사용해 보십시오.메모리와 스레드 양쪽의 문제를 검출할 수 있습니다.http://software.intel.com/en-us/articles/intel-inspector-xe/
코드스니치가 당신이 원하는 게 아닐까요?http://www.entrek.com/codesnitch.html
Borland/CodeGear/Embarcadero C++ Builder를 사용하는 경우 CodeGuard를 사용할 수 있습니다.
거의 모든 프로파일러에는 메모리 누전 체크가 포함되어 있으며, 메모리 할당 시 스택이 표시됩니다.
인텔 병렬 검사기를 추천할 수 있습니다.사용하기 쉽고 재컴파일이 필요 없습니다.평가판은 30일간 실행됩니다.
Glow Code 및 AtromatedQA에는 이러한 기능도 포함됩니다.모두 무료 체험판을 제공합니다.
Contrast의 Compuware DevPartner(일명 BoundsChecker)에서는 느린 "계장" 재컴파일 작업이 필요하며 오류 확인 시 애플리케이션 실행 속도도 느려집니다.또한 Bounds Checker는 64비트 버전에서는 전혀 동작할 수 없습니다.우리는 그 도구를 포기했다.
지금까지 사용한 툴 중 최고의 툴은 DevPartner BoundsChecker입니다. 무료는 아니지만 평가 기간이 있습니다.
목록에 대한 다른 메모리 도구:메모리 검증기
공짜는 아니지만 Purify나 Boundschecker만큼 비싼 곳은 없다.
mingw가 두렵지 않은 경우 몇 가지 링크(MSVC와 연동되는 링크도 있습니다.) http://betterlogic.com/roger/?p=1140
GCC 및 Micrsoft Visual C(아직 C++는 아님)를 처리하는 Windows용 메모리 안전 체크 툴을 완료하고 베타 테스터를 찾고 있습니다.
2011년 6월 12일 편집: 베타판이 폐지되어 GCC 및 Microsoft Visual Studio C용으로 제작되었습니다.
저는 오늘 이 SF 프로젝트를 발견했습니다.
http://sourceforge.net/p/valgrind4win/wiki/Home/
그들은 Windows로 밸린더를 이식하고 있다.아마 몇 년 안에 창문에 믿을만한 볼펜드가 있을 것이다.
다음 질문을 확인해 주세요.Windows를 대체할 만한 Valgrind가 있습니까?일반적으로 볼그라인드의 대체품이 요구되지만 주로 메모리누전 검출기에 대해 설명하며 레이스 조건 검출에 대해서는 설명하지 않습니다.
C++ 메모리 누수/손상 및 초기화되지 않은 변수, 포인터 오류, 문자열 등의 많은 버그를 찾는 데 탁월한 역할을 하는 Insure+를 사용했습니다.또, 시각적인 「코드 커버리지」나 런타임 메모리 사용량등을 실시합니다.당신의 코드에 더 확신을 줄 수 있습니다.trail 버전도 시험해 볼 수 있습니다.
Mozilla가 메모리 누수에 대해 무엇을 하고 있는지 읽어보실 수 있습니다.툴박스의 1가지 툴은 메모리누전 검출기로 사용되는Hans Boehm 가비지 콜렉터입니다.
Runtime을 시험해 볼 수 있습니다.체커 재판에서 IBM Purify 재판으로..
무료 솔루션은 Visual Studio에서 다음 코드를 사용하는 것입니다.
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
모든 cpp 파일 맨 위에 이 글을 쓰세요.그러면 디버깅 실행을 정지할 때 응용 프로그램의 메모리 누수가 검출되어 출력 창에 표시됩니다.메모리 리크 라인을 더블 클릭하면 메모리가 할당되어 해제되지 않는 선이 강조 표시됩니다.도움이 될 수 있습니다.http://www.flipcode.com/archives/How_To_Find_Memory_Leaks.shtml
언급URL : https://stackoverflow.com/questions/413477/is-there-a-good-valgrind-substitute-for-windows
'programing' 카테고리의 다른 글
Vue 2 AOT 사전 컴파일 (0) | 2022.05.30 |
---|---|
vuex getter의 Nuxt 플러그인 기능에 액세스하는 중 (0) | 2022.05.30 |
vuej에서 쿠키를 설정하는 방법 (0) | 2022.05.29 |
각 테스트 파일에 컴포넌트가 필요한 모든 것을 Import하지 않도록 하려면 어떻게 해야 합니까? (0) | 2022.05.29 |
Vue: 컴포넌트와 함께 스토어를 사용하는 방법 (0) | 2022.05.29 |