본문 바로가기
프로그램 (PHP,Python)

Valgrind & KCachegrind 사용 예

by 날으는물고기 2009. 7. 4.

Valgrind & KCachegrind 사용 예

Valgrind: http://valgrind.org/
Kcachegrind: http://kcachegrind.sourceforge.net/

Valgrind is a GPL'd system for debugging and profiling Linux programs. With Valgrind's tool suite you can automatically detect many memory management and threading bugs, avoiding hours of frustrating bug-hunting, making your programs more stable. You can also perform detailed profiling to help speed up your programs.

Valgrind 툴의 종류
  • Memcheck 
  • Cachegrind
  • Callgrind: 함수의 호출 관계를 보여줌. KCachegrind를 통해 visual하게 결과를 볼 수 있음.
  • Massif 
  • Helgrind

사용 예
$ ls -al합계 20
drwxr-xr-x 2 kelovon kelovon 4096 2008-08-18 16:00 .
drwxr-xr-x 3 kelovon kelovon 4096 2008-08-18 11:55 ..
-rwxr-xr-x 1 kelovon kelovon 7610 2008-08-18 11:56 a.out
-rw-r--r-- 1 kelovon kelovon  385 2008-08-18 11:56 helloworld.cpp
$ valgrind -q --tool=callgrind ./a.out
$ ls -al
합계 40
drwxr-xr-x 2 kelovon kelovon  4096 2008-08-18 16:01 .
drwxr-xr-x 3 kelovon kelovon  4096 2008-08-18 11:55 ..
-rwxr-xr-x 1 kelovon kelovon  7610 2008-08-18 11:56 a.out
-rw------- 1 kelovon kelovon 16500 2008-08-18 16:01 callgrind.out.6369
-rw-r--r-- 1 kelovon kelovon   385 2008-08-18 11:56 helloworld.cpp
$ kcachegrind callgrind.out.6369
kbuildsycoca running...
$
이 과정을 거치면 다음과 같이 KCachegrind 창이 뜬다.


KCachegrind는 프로파일 데이타를 비쥬얼하게 보여주는 툴입니다.
제가 사용하고 있는 수세 배포판에는 기본설치만으로 KDevelop과 함께 설치되어 있습니다.
일단 이툴을 사용하기 위해서는 Callgrind라는 툴을 설치해야 합니다. 

링크된 사이트에서 받을수도 있지만 배포판을 받아 설치하시면 조금더 편하게 설치할수 있습니다.
http://kcachegrind.sourceforge.net/cgi-bin/show.cgi/KcacheGrindDownload - 64 

실행 관계와 걸린시간을 일목 요연하게 보여준다.


728x90

댓글