Valgrind 프로파일러, "callgrind"

KiJeong·2021년 12월 7일
1

Test

목록 보기
1/4
post-thumbnail

Valgrind cross compile 하는법

크로스 컴파일할 도커에서 다음 실행

$ wget -O /workdir/valgrind-3.12.0.tar.bz2 "http://valgrind.org/downloads/valgrind-3.12.0.tar.bz2”
$ tar jxf /workdir/valgrind-3.12.0.tar.bz2 -C /workdir 
$ cd /workdir/valgrind-3.12.0 
$ sed -i -e "s#armv7#arm#g" configure 
$ ./configure --host=${TARGET} --prefix=${PREFIX}/out 
$ make
$ make install

ls ${PREFIX}/out 로 확인해보면 make 한 결과가 out 폴더 밑에 있다.

$ ls ${PREFIX}/out
bin  include  lib  share

타겟 보드로 다음 바이너리 파일을 넘김

scp -P 126 ${PREFIX}/out/bin/valgrind root@192.168.23.89:/usr/bin
scp -P 126 ${PREFIX}/out/bin/callgrind_* root@192.168.23.89:/usr/bin

scp -P 126 ${PREFIX}/out/lib/valgrind/vgpreload_* root@192.168.23.89:/dev/valgrind
scp -P 126 ${PREFIX}/out/lib/valgrind/memcheck-arm-linux root@192.168.23.89:/dev/valgrind
scp -P 126 ${PREFIX}/out/lib/valgrind/callgrind-arm-linux root@192.168.23.89:/dev/valgrind

타겟 보드에서 Valgrind library 를 잡아줌

export VALGRIND_LIB=/dev/valgrind

타겟보드에서 다음을 실행

  • valgrind --tool=callgrind [프로그램명][파라미터]
valgrind --tool=callgrind ./execName param1

결과물로 callgrind.out.?? 이 생긴것을 확인함

맥에서 callgrind 결과물을 visualization (시각화) 하는 방법

1. qcachegrind 설치

brew install qcachegrind

2. qcachegrind 실행

터미널 열고 qcachegrind 명령어 실행

$ qcachegrind

참고 링크
armv7환경으로 크로스컴파일 하는방법

0개의 댓글