글
■ 리눅스에는 실행 프로그램의 시스템 콜을 추적할 수 있는 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 |
RECENT COMMENT