linux/system programming2011. 6. 26. 02:50
리눅스에는 실행 프로그램의 시스템 콜을 추적할 수 있는 strace와 라이브러리 함수를 추적할 수 있는 
ltrace 도구가 제공된다

다음은 앞서 gdb에서 이용한 mydebug 실행 파일을 strace 와 ltrace로 확인해 본 내용이다.
$ strace ./mydebug 2>&1 | less

 


참 복잡하다
시스템 콜를 추적할수 있다.

이번엔 ltrace를 사용해보자

$ ltrace ./mydebug


장점 :
strace와 ltrace를 이용하면 실행 프로그램의 실행 과정을 추적해 볼수 있어 
전문적인 디버깅이 가능하다

프로그램의 실행이 이상하게 되거나 예상되로 진행이 되지 않는 경우 사용하면 편리하다.
 
자 그럼 대충 큰틀을 정리하자

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

 
 

Posted by babuzzzy