2012-08-09 2 views
0

리눅스 커널 개발에 대한 첫 걸음을 내딛고 있습니다. insmod과 함께 설치하는 .ko 커널 모듈을 생성하는 코드가 있습니다. 나는 모듈을 설치할 때 일어나는 일을 디버깅하는 방법을 원하지만 몇 가지 어려움에 직면하고있다.리눅스 커널 모듈의 init_module() 호출을 디버그하십시오.

  1. init_module에 대한 호출을 디버깅해야합니다. insmode을 실행할 때이 함수가 호출됩니까?

  2. 내가 무슨 디버깅하는 insmod "/my/url/fil.ko" -m을 사용하려고하지만 GDB으로 디버깅 할 수있는 방법이 있는지 알고 계십니까 나는 오류 unknown parameter -m

  3. 을 볼 수 있습니다 /cat/log/message에있는 동안 때마다 나는 오류 -1 Unknown symbol in module있어?

Reagrds

AFG

답변

4

예,의 init_module 함수가 바로이 insmod 명령을 사용하여 커널에로드로 불려갑니다. 인쇄물을 추가하고 모듈을 삽입하자 마자 인쇄물이 인쇄되는지 확인할 수 있습니다.

-m과 같은 매개 변수를 전달하여 커널 모듈을 디버그 할 수 없습니다.

MODULE_PARAMS를 사용하여 작성한 커널 모듈 내에서만 처리 할 매개 변수를 전달할 수 있습니다.

+0

안녕하세요 Amarnath. 귀하의 회신에 감사드립니다. 그래서 실제로 "insmod -m"의 정확한 구문은 무엇이며 어떻게 작동합니까? 맨 페이지는 모듈을로드하는 동안 모든 printk 호출을 콘솔에 출력하는 데 사용된다고 말합니다. –

+1

insmod에서 -m 스위치 지원이 커널 2.6부터 제거되었다고 생각합니다. 자세한 정보를 찾을 수 있습니다. 여기 : http : //linux.derkeiler.com/Mailing-Lists/Kernel/2003-09/3268.html –