programing

Windows를 대체할 만한 Valgrind가 있습니까?

prostudy 2022. 5. 29. 09:21
반응형

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를 사용하면 프로그램에서 메모리 누수를 감지하고 격리할 수 있습니다.

나는 몇 가지 도구를 나열하고 싶은데, 도움이 될 것이다.

상세한 것에 대하여는 이 기사를 읽는다.

  1. 정화하다
  2. 경계 검사기
  3. Coverity(기본적으로는 코드아나라이저이지만 스태틱으로 메모리 누수가 검출됩니다)
  4. 예열 코드
  5. dmalloc
  6. ccmalloc
  7. 걸림
  8. YAMD
  9. 발그린드
  10. mpatrol
  11. 보증++

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

반응형