호출되는 함수 알아내기...

pdjj14의 이미지

리눅스에서요...

어떤 프로그램을 실행 시켰을 때, 그 프로그램이 로딩되기까지 호출되는 함수의 개수를 구하는 방법이 있나요?

예를 들어, mplayer 같은 프로그램을 실행시킬 경우, 최초 로딩이 되기 까지 호출되는 함수(function) 의 개수를 구할 수 있는 지 궁금합니다...
가능하다면 중복 호출되는 녀석은 제외하구요...

아시는 분은 그냥 가시지 마시구...알려주세요~~~

박계현의 이미지

code profilers 를 이용하시면 됩니다. (RMS 가 보이네요 .. :- )

+ gprof - The GNU Profiler (in binutils)
+ kprof - a KDE3 visual tool to help analyze profiling results

1) gprof - The Call Graph
http://www.gnu.org/software/binutils/manual/gprof-2.9.1/html_chapter/gprof_toc.html
http://www.gnu.org/software/binutils/manual/gprof-2.9.1/html_chapter/gprof_5.html#SEC12

SEC 12 를 보시면, "The Call Graph" 볼수있구요.

# g++ test.cpp -pg -o test
# gprof test > test.gprof

2) kprof(+ GraphViz)
http://kprof.sourceforge.net
http://prdownloads.sourceforge.net/kprof/kprof-1.4.1.tar.gz

GraphViz 와 kprof 를 설치하시면, 가시적으로 보실 수 있을 겁니다. (qt-mt 라이브러리가 필요해요)