■ 리눅스에는 실행 프로그램의 시스템 콜을 추적할 수 있는 strace 라이브러리 함수를 추적할 수 있는 ltrace 도구가 제공된다.

다음은 앞서 gdb에서 이용한 mydebug 실행 파일을 strace 와 ltrace로 확인해 본 내용이다.

(1) 시스템콜 추적
$ strace ./mydebug 2>&1 | less

 




(2) 라이브러리 함수 추적
$ ltrace ./mydebug


(3) 장점
:
strace와 ltrace를 이용하면 실행 프로그램의 실행 과정을 추적해 볼수 있어 전문적인 디버깅이 가능하다.
프로그램의 실행이 이상하게 되거나 예상되로 진행이 되지 않는 경우 사용하면 편리하다.
 

(4) 정리
- 리눅스에는 커널의 기능을 사용자들이 이용할 수 있도록 시스템 콜이 제공된다.
- 시스템 콜은 커널 모드에서 수행되고, 라이브러리 함수는 유저모드에서 수행한다.
- 리눅스의 gcc 컴파일러를 이용하여 정적 라이브러리와 공유 라이브러리를 생성할수 있다.
- 리눅스에서 제공되는 디버깅 도구로는 gdb, ddd, ldd,strace, ltrace 등이 있다.


※ 출처 : http://babuzzzy.tistory.com/entry/리눅스-시스템-프로그래밍-strace-와-ltrace

'P rogramming > Linux System' 카테고리의 다른 글

파일 디스크립터 (File Descriptor)  (7) 2012.02.27
Programing 참고사항  (0) 2012.02.20
디버깅 - gdb  (0) 2011.09.30
공유 라이브러리 생성  (0) 2011.09.30
정적 라이브러리 생성  (0) 2011.09.30
by 민트앤라떼 2011. 9. 30. 15:05