리눅스에는 실행 프로그램의 시스템 콜을 추적할 수 있는 strace와 라이브러리 함수를 추적할 수 있는
ltrace 도구가 제공된다
다음은 앞서 gdb에서 이용한 mydebug 실행 파일을 strace 와 ltrace로 확인해 본 내용이다.
$ strace ./mydebug 2>&1 | less
참 복잡하다
시스템 콜를 추적할수 있다.
이번엔 ltrace를 사용해보자
$ ltrace ./mydebug
장점 :
strace와 ltrace를 이용하면 실행 프로그램의 실행 과정을 추적해 볼수 있어
전문적인 디버깅이 가능하다
프로그램의 실행이 이상하게 되거나 예상되로 진행이 되지 않는 경우 사용하면 편리하다.
자 그럼 대충 큰틀을 정리하자
- 리눅스에는 커널의 기능을 사용자들이 이용할 수 있도록 시스템 콜이 제공된다.
- 시스템 콜은 커널 모드에서 수행되고, 라이브러리 함수는 유저모드에서 수행한다.
- 리눅스의 gcc 컴파일러를 이용하여 정적 라이브러리와 공유 라이브러리를 생성할수 있다.
-리눅스에서 제공되는 디버깅 도구로는 gdb, ddd, ldd,strace, ltrace 등이 있다.
ltrace 도구가 제공된다
다음은 앞서 gdb에서 이용한 mydebug 실행 파일을 strace 와 ltrace로 확인해 본 내용이다.
$ strace ./mydebug 2>&1 | less
참 복잡하다
시스템 콜를 추적할수 있다.
이번엔 ltrace를 사용해보자
$ ltrace ./mydebug
장점 :
strace와 ltrace를 이용하면 실행 프로그램의 실행 과정을 추적해 볼수 있어
전문적인 디버깅이 가능하다
프로그램의 실행이 이상하게 되거나 예상되로 진행이 되지 않는 경우 사용하면 편리하다.
자 그럼 대충 큰틀을 정리하자
- 리눅스에는 커널의 기능을 사용자들이 이용할 수 있도록 시스템 콜이 제공된다.
- 시스템 콜은 커널 모드에서 수행되고, 라이브러리 함수는 유저모드에서 수행한다.
- 리눅스의 gcc 컴파일러를 이용하여 정적 라이브러리와 공유 라이브러리를 생성할수 있다.
-리눅스에서 제공되는 디버깅 도구로는 gdb, ddd, ldd,strace, ltrace 등이 있다.
'linux > system programming' 카테고리의 다른 글
라이브러리를 만들어보자 - 공유 라이브러리 생성 (0) | 2011.06.26 |
---|---|
리눅스 라이브러리 함수를 만들어보자 -정적 라이브러리 생성 (0) | 2011.06.26 |
5. 리눅스 시스템 프로그래밍 - 디버깅 (1) | 2011.06.26 |
4. 리눅스 시스템 프로그래밍 - 컴파일 & 라이브러리 생성 (0) | 2011.06.22 |
3. 리눅스 시스템 프로그래밍 - 시스템 콜과 라이브러리 함수 목록 (0) | 2011.06.22 |