레이블이 valgrind인 게시물을 표시합니다. 모든 게시물 표시
레이블이 valgrind인 게시물을 표시합니다. 모든 게시물 표시

2010년 3월 26일 금요일

Microsoft Application Verifier




http://www.microsoft.com/downloads/details.aspx?familyid=c4a25ab9-649d-4a1b-b4a7-c9d8b095df18&displaylang=en

이런게 있었네.
valgrind 정도의 기능을 원하는데.. 일단 함 써보자.

사용법은 http://msdn.microsoft.com/en-us/library/aa480483.aspx 또는 그냥 appverif.exe 실행
당연히 valgrind 만큼 편하진 않은데 로우리소스 테스트등 재미난게 보인다.



추가.
으음...
그닥 맘에 드는 툴은 아니네.
그래도 기억해두자.

추가
http://stackoverflow.com/questions/413477/is-there-a-good-valgrind-substitute-for-windows
도 적어둔다. 주로 상용툴 야그라 나랑 무관하지만.

google perftools 로 heap 만이라도 체크해볼까? 흠







2009년 4월 14일 화요일

google perftools

http://code.google.com/p/google-perftools/

지금은 리눅스만 써서 valgrind 면 충분한데 혹시나 나중에 다시 윈도개발자로 돌아간다던가 할경우 진단툴로 써먹어보자. 본래 목적인 malloc 대용으로 쓸일은.. 아마도 없을듯. 아무래도 컴파일러가 제공하는 기본 malloc 이 더 검증이 잘 됐겠지?

달랑 링크만 적기 뭐해서 사용법이나 익혀보자 했는데 워낙 간단하니 그럴것도 없네.
기존 프로그램에 바로 적용해서 돌려보니 잘 돌아간다.



2008년 9월 26일 금요일

cmake 사용시 add_test 로 추가한 테스트 케이스에 대해서 valgrind(윈도라면 purify) 등으로 메모리 릭 검사를 하는 방법


ctest 의 기능중에 valgrind 로 테스트해주는 기능이 들어있네.
간단히 테스트 해보고 적어둔다. 대시보드 기능은 아직 안땡기는데..
꼴을 보니 곧 써봐야할것 같다.

어쨌건.. CMakeLists.txt 예제(일부분만)..
# CTest 를 인클루드하는것 잊지말자
include(CTest)
enable_testing()
# MEMORYCHECK_COMMAND 로 valgrind path 지정.
# 그외 기억해둘만한 변수로는
# MEMORYCHECK_COMMAND_OPTIONS
# MEMORYCHECK_SUPPRESSIONS_FILE
# 정도가 있다.
# 그냥 valgrind 를 쓰는 경우라면 딱히 지정안해도 되더라.
set(MEMORYCHECK_COMMAND valgrind)

# enable_testing, add_test 콤보는 지금까지 계속 써오던것.
# 이렇게 추가된 테스트케이스들을 대상으로 멤체크를 하려면
# ctest -T memcheck 명령을 주면 된다.
add_test(test_simple_decoding test_simple_decoding)
add_test(test_simple_encoding test_simple_encoding)


뭐 별거 없다. 내 개발환경이야 보통 리눅스일테니 valgrind 세팅은 생략해도 되고.. 그럼 남는건 기존 내가 즐겨 쓰던 세팅에 include(CTest) 가 추가된다는것 하나뿐이다.

위 테스트에 대해서 메모리 체크를 시행할때는 커맨드라인에서 ctest -T memcheck 를 때려준다. 모든 케이스에 대해서 메모리 체크가 이루어지고 마지막에 leak 이 있었던 케이스가 몇개인지 알려준다.

예를들어 내가 두개의 테스트를 가지고 있는데 모두 릭이 있을경우 요런 결과가 나온다.


그리고 릭을 잡고 났더니 요런 결과가 나온다. 결과가 눈에 잘 안들어 오는군.

추가.
make 에  NightlyMemCheck 란 타겟이 생겼는데 이게 위와 동일한듯. CTest 를 include 해서 그런지 못보던 타겟이 많이 보이는군....