경계 검사기

BoundsChecker
경계 검사기
개발자마이크로 포커스
안정된 릴리스
2021년 3월 5일 / 12.1.40
운영 체제창문들
유형프로파일러 / 메모리 디버거
면허증.독자적인 소프트웨어
웹 사이트www.microfocus.com/products/devpartner/

BoundsCheckerMicrosoft Visual C++사용한 C++ 소프트웨어 개발에 사용되는 메모리 검사 및 API 콜 검증 도구입니다.그것은 1990년대 초에 NuMega에 의해 만들어졌다.1997년 NuMega가 Compuware에 인수되었을 때 BoundsChecker는 더 큰 툴 스위트인 DevPartner Studio의 일부가 되었습니다.Micro Focus는 [1]2009년에 Compuware로부터 이 제품 라인을 구입했습니다.유사한 툴로는 Purify, Insure++ 및 Valgrind있습니다.

BoundsChecker는 다음 두 가지 다른 모드로 실행할 수 있습니다.ActiveCheck는 모든 애플리케이션에 대해 그대로 작동하며, FinalCheck는 응용 프로그램을 빌드할 때 추가된 계측을 사용합니다.

ActiveCheck는 덜 거슬리는 분석을 수행하고 응용 프로그램에서 C Runtime Library, Windows API 및 COM 개체에 대한 모든 호출을 모니터링합니다.메모리 할당 및 릴리스를 감시함으로써 메모리 누전과 오버런을 검출할 수 있습니다.ActiveCheck는 API 및 COM 콜을 감시함으로써 파라미터, 반환 및 예외를 체크하고 예외가 발생했을 때 예외를 보고할 수 있습니다.스레드 데드록은 동기 객체 및 콜을 모니터링하여 실제 데드록 검출 및 잠재적인 데드록 검출에도 사용할 수 있습니다.

Final Check는 계측된 빌드를 필요로 하며 훨씬 더 깊지만 침입적인 분석을 제공합니다.Active Check의 모든 검출 기능과 버퍼 오버플로우(읽기 및 쓰기) 및 초기화되지 않은 메모리 액세스를 검출하는 기능을 제공합니다.모든 범위 변경을 모니터링하고 메모리 개체를 참조하는 포인터를 추적합니다.

일반적인 기능

누출 감지

  • 메모리 트래킹 - 메모리 할당 및 릴리스는 응용 프로그램 수명 동안 추적되며, 일반 프로세스 종료 시 사용자 코드에 의해 할당된 메모리 블록이 할당되어 있는지 보여주는 세션 종료 보고서가 생성됩니다.컴파일러의 instrumentation을 사용하면 할당된 블록메모리를 참조하는 마지막 포인터가 범위를 벗어나거나 다른 값에 의해 덮어쓰게 되면 메모리 누수가 더 일찍 발표될 수 있습니다.같은 메커니즘을 통해 이전에 출시된 메모리에 대한 포인터를 사용하려는 시도가 보고됩니다.
  • COM 오브젝트트래킹 - COM 오브젝트의 작성과 파괴는 어플리케이션의 라이프 사이클 전체에 걸쳐 추적되며 일반 프로세스 종료 시 활성화되어 있는 오브젝트를 나타내는 세션 종료 보고서가 생성됩니다.
  • 리소스 트래킹 - 시스템 객체 핸들(파일 핸들, GDI 핸들 등)의 작성과 파괴가 감시되고 일반 프로세스 종료 시 남아 있는 핸들을 나타내는 세션 종료 보고서가 생성됩니다.

API 호출 검증

API 콜이 감시되고 함수 콜이 실제로 실행되기 전에 입력 파라미터가 검증되어 발생할 수 있는 문제를 경고합니다.API 리턴 코드도 감시되고 에러 코드도 기록됩니다.이러한 검증은 BoundsChecker에 알려진 API로 제한되어 있으며, 현재 수천 개의 API가 있습니다.Memory Tracking이 네이블일 경우 API Call Validation은 수집된 정보를 사용하여 메모리 포인터의 보다 정확한 검증을 수행할 수 있습니다.

메모리 오버런 검출

메모리 트래킹과 API 검증을 모두 유효하게 하면 다양한 종류의 어레이와 버퍼 오버런 상태를 검출할 수 있습니다.컴파일러 인스트루먼테이션은 이 기능을 강화합니다.이것은 원래 제품의 이름을 딴 기능입니다.

API 콜로깅

API, COM 메서드 및.NET Interop 함수 콜은 콜 파라미터 값과 그에 따른 반환값을 기록해 상세하게 기록할 수 있습니다.중요하지 않은 응용 프로그램에서 세션 로그가 빠르게 커지기 때문에 이 기능은 값이 제한됩니다.

.NET 분석

보고서를 생성하여 분석할 수 있습니다.테스트 대상 프로세스의 수명 동안 NET Interop, 가비지 수집 및 피니셔 액티비티.

교착 분석

특정 종류의 치명적인 포옹과 다른 그러한 행업이 감지될 수 있습니다.

호환성.

BoundsChecker의 현재 버전(12.1.40)은 Windows 10(2020 Spring Update)에서 32비트 및 64비트 네이티브응용 프로그램을 지원합니다.MS-DOS, 16비트 Windows, Windows 2000, Windows XP 및 Windows 7 환경은 더 이상 지원되지 않습니다. 제품은 DevPartner Studio의 일부로 2017 업데이트 15.9.33 및 2019 업데이트 16.9[2] 통합됩니다.

2021년 3월 현재 교착 분석 기능은 X64 애플리케이션에서 아직 지원되지 않습니다.

비판

  • 라이선스 - Micro Focus International에 인수된 이후 설치 및 사용 시 대처해야 하는 라이센스 메커니즘이 점점 더 까다로워짐에 따라 이 제품군은 비판을 받고 있습니다.예를 들어, 제품을 판매하는 온라인 스토어 사이트의 리뷰(개발자 중 한 명이 제출한 리뷰 제외)에는 라이센스 처리 [3]방식 때문에 제품을 효과적으로 사용할 수 없는 것으로 기재되어 있습니다.
  • 속도 - 이 툴은 비교적 침입성이 높기 때문에 테스트 대상 어플리케이션의 속도가 50~300배까지 느려질 수 있습니다.한 번에 사용 중인 기능이 많을수록 속도가 느려집니다.이것은 컴파일러의 instrumentation을 사용하는 경우에 특히 해당됩니다.
  • 통화 - 이 제품은 많은 버전의 Windows 및 Microsoft Visual Studio에서 작동하지만 API 검증 데이터베이스는 2006년 이후 에 크게 추가되지 않았습니다.새로운 API는 일반적으로 감시되지 않습니다.
  • 휴대성 - Microsoft Windows 및 Microsoft Visual Studio만 지원됩니다.다른 운영 체제나 컴파일러는 지원되지 않습니다.
  • 노이즈 - 많은 결과는 유효하지만 그다지 유용하지 않다고 보고되고 있습니다.이러한 종류의 가장 일반적인 것은 API 오류 반환입니다.특정 API 콜이 실패하는 것은 지극히 정상적인 일입니다.이러한 결과는 억제할 수 있습니다.

버전 이력

  • 12.0 - 2020년 3월 - Microsoft의 최신 Visual C/C++ 런타임용으로 구축된 새로운 버전.다른 많은 내부 변화도 있습니다.[4]
  • 11.5.1 - 2020년 9월 - WiX Toolset instra를 사용합니다.
  • 11.4 HF5 - 2020년 2월 - Visual Studio 2019 16.4.5 지원. Windows 7 이전 버전 또는 Visual Studio 2015 이전 버전을 지원하는 마지막 버전.
  • 11.4 HF4 - 2019년 10월 - Windows 10 2019 Fall Update 및 Visual Studio 2019 16.3.6 지원.
  • 11.4 HF3 - 2019년 5월 - Windows 10 2019 Spring Update 및 Visual Studio 2019 16.0.3 지원.
  • 11.4 HF2 - 2018년 12월 - Windows 10 2018 Fall Update 및 Visual Studio 2017 15.9.4 지원
  • 11.4 - 2017년 11월 - Windows 10 2017 Fall Creator's Update 지원.
  • 11.3 HF5 - 2017년 4월 - Visual Studio 2017 지원.
  • 11.3 - 2015년 7월 - Windows 10 및 Visual Studio 2015 지원
  • 11.2 - 2014년 1월 - Windows 8.1, Windows 8.0 및 Visual Studio 2013 지원
  • 11.1 - 2013년 4월 - 중국어 현지화(온라인 도움말 제외).다양한 버그 수정
  • 11.0 - 2012년 9월 - Visual Studio 2012 완전 지원, 성능 및 정확도 향상.
  • 10.6 - 2012년 4월 - 새로운 라이센스 모델, 제품 업데이트 검사기, Visual Studio 2012 사전 지원 및 액티비티 모니터가 있는 시스템 트레이 도구.
  • 10.5 - 2011년 2월 - Windows Vista X64 이후 X64 응용 프로그램을 지원합니다.
  • 10.0 - 2010년 4월 - Visual Studio 2010 지원
  • 9.1 - 2009년 10월 - Windows 7 지원.
  • 9.0 - 2008년9월 - Visual Studio 2005 및 2008 지원
  • 8.2 - 2007년 5월 - Visual Studio 6.0 및 Visual Studio를 완전히 지원하는 마지막 버전.NET 2003.
  • 6.0 - 1998 - Compuware에 의한 NuMega 인수 후 첫 번째 버전.
  • 5.0 - 1997년 3월
  • 4.0 - 1996 - API 검증 기능 도입.
  • DOS용 2.0 - 1991년 3월[5]

「 」를 참조해 주세요.

레퍼런스

  1. ^ Micro Focus DevPartner 공식 사이트
  2. ^ "DevPartner Technical Specs". Archived from the original on 2017-09-20. Retrieved 2017-05-18.
  3. ^ "Code Analysis & Metrics Applications - Best Selling".
  4. ^ "Top 20+ Memory Leak Detection Tools for Java and C++". Software Testing Help. Retrieved 2022-02-20.
  5. ^ InfoWorld, 1991년 3월 4일, 19페이지