모듈(디바이스 드라이버) 디버깅 하는 방법을 알려주세요.(print
타겟 보드에서 모듈을 올리고 프로그램을 돌리면 모듈 상의 프로그램이 돌때 시스템이 죽어버립니다.
죽기 어떻게 어떻게 찾아서 죽기 직전에 printk를 이용하여 찍어봐도 찍기 전에 죽어버립니다.
시스템이 죽어버리니 매번 재부팅해야하고...
이럴 경우 printk를 이용해서 찾기도 어렵더군요.
어떤 다른 방법이 없을까요?
CAUSE - 80000c STATUS - 1000fc03 EPC - c02a283c BADADDR - c00557a8 ra = c02a2834
RTAI Task Buddy_Task1 (tid: 3, stackpage=85b54e30)
$0 : 00000000 1000fc00 85b50b00 00000001 85b50b0c 00000000 00000000 85b50b10
$8 : 0000000c 8515b344 85b50b00 c004f038 00000000 00000000 07829b80 85b56dd8
$16: 8515bc14 00000004 7fff7e24 00000005 c02b98c8 c02b86f4 c02a02e4 c02a03cc
$24: 00000001 00a75900 00000000 85b55b00 c0030768 c02a2834
Hi : 00000000
Lo : 0000000c
epc : c02a283c
Status: 1000fc03
Cause : 0080000c
Stack: aaaaaaaa 00000004 c03402e8 74066c32 aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa
aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa
aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa
aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa
aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa
aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa
aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa
aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa
aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa
aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa
위와 같이 출력하며 죽는군요. 위 출력을 보고 어디서 죽는지 알 수 있는 방법은 없을까요?
보통 왠만한 커널패닉은 crash 툴을 쓰면 쉽게 잡아낼수 있는데요...
보통 왠만한 커널패닉은 crash 툴을 쓰면 쉽게 잡아낼수 있는데요...
http://bbs.kldp.org/viewtopic.php?t=35330
안타깝게도 질문중에 '타겟보드' 니 'RTAI' 니 하는 스트링이 보이는군요. 잘하는 사수분있으면 좀 봐달라고 하세요.
debugger
아시겠지만
kernel 용 디버거를 쓰면 됩니다.
좀 번거롭지요.kgdb.sourceforge.net
위의 주소를 참조하시면 되겠지만
제공하는 스크립트를 쓰면 타겟 보드에 모듈을 원격으로 올립니다.
어플리케이션을 디버깅하듯이 하면 됩니다.
물론 죽으면 리부팅해야하지만 죽는 위치는 알수 있습니다.
위에 분이 말씀하신 툴이 더 편할 듯합니다.[/url]
미래를 수정할 수 있는 때는 현재이다.
댓글 달기