Digital Recipe

리눅스 커널 디버깅 본문

리눅스/리눅스 프로그래밍

리눅스 커널 디버깅

노리터 2011. 8. 4. 23:11

일반적인 프로그램 혹은 커널 소스를 분석하기 위한 하나의 방법으로, 
<어떤 파일>에서 <어떤 함수><몇 번째 줄>에서 printf() 혹은 printk()가 호출되었는지 알 수 있는 방법이 있다.

이런 출력함수를 통하여 에러가 발생하였을 때, 어느 코드까지 수행이 되었는지 확인이 가능하다.


ㅁ 사용 방법

해당 Code Line에서 printf("%s, %s, %d\n". __FILE__, __FUNCTION__, __LINE__);
을 삽입해 주면 된다.

여기서 __FILE__, __FUNCTION__, __LINE__은 매크로써, <파일명><함수명><라인번호>가 출력된다.
리눅스 커널소스에서는 printk()라는 커널함수를 사용하면 된다.


ㅁ 단점

많은 printf()를 사용하면 전체적인 프로그램 수행속도가 느려지게 된다.



2012. 03. 24
Posted by HoSeok Seo


Comments