2011-05-16 11 views
0

Linux 커널 모듈을 디버깅 할 수있는 방법이 있습니까? 사용자 프로세스에 사용되는 것과 같은 GUI 기반 기능을 찾고 있습니까?Linux 커널 모듈 디버깅

답변

1

가상 시스템에서 커널을 실행할 수있는 경우 VMware Workstation에서 GDB attach to the VM을 실행중인 커널을 디버그 할 수 있습니다. 내가 다른 VM 플랫폼에 익숙하지 않더라도 다른 VM 플랫폼에서도 마찬가지 일 수 있습니다.

베어 하드웨어의 커널 디버깅을위한 KGDB도 있습니다. 직렬 포트를 통해 대상 컴퓨터에 연결합니다. 저는 이것을 조금 사용한 적이 있지만 작동하지만 VMware가 더 잘합니다. 최신 커널은 KGDB를 메인 라인에 통합 했으므로 패치 할 필요가 없습니다.

GDB가 정확하게 GUI 기반 도구가 아니기 때문에이 질문에 대한 답변이 충분하지 않습니다. 디버깅을 위해 GDB의 스텁 프로토콜을 사용하거나 사용 가능한 인터페이스로 GDB를 래핑하는 GUI 디버거를 찾아야합니다.

+0

답장을 보내 주셔서 감사합니다.하지만 실제로 컴파일러 최적화로 인해이 구제책을 최신 버전의 커널에서 테스트했지만 생성 된 vmlinux dos에는 디버깅 정보가 없습니다! 내가 그것을 해제하는 방법을 찾을 수 없습니다. – amrzar

+0

@ amrzar : 바이너리 커널/모듈에 디버깅 정보가 없다면, 당신을 도울 수있는 공통 디버거를 찾을 수 없을 것입니다. 다행히도 디버깅 정보가 존재합니다. 배포판의 커널을 사용한다면, google을 사용하여 디버그 패키지를 찾으십시오. 직접 컴파일하는 경우 "커널 해킹"메뉴에서 "디버그 정보로 커널 컴파일"을보십시오. – Karmastan

1

예, GUI를 원한다면 가상화 및 kgdb가 필요합니다. 예를 들어, 버추얼 박스는 디버깅 할 커널 모듈이있는 리눅스를 실행하고, 호스트는 또 다른 리눅스입니다.

http://allmybrain.com/2010/04/29/debugging-linux-kernel-modules-with-virtualbox-and-kgdb/

나는 리눅스와 오픈 솔라리스를 위해 일을했다, 나는 버추얼 커널에서 일어나는 일들을 이해하는데 정말 멋지다라고해야합니다.

관련 문제