커널이 오작동하는 경우 0xac/0x2b8은 무엇을 의미합니까? 또한 함수의 파일에서 줄 번호를 어떻게 얻을 수 있습니까? 이것은 ARM 아치의 Linux입니다.커널에서 라인 번호를 찾으십시오.
PC는 get_next_timer_interrupt에있다 + 0xac/0x2b8
커널이 오작동하는 경우 0xac/0x2b8은 무엇을 의미합니까? 또한 함수의 파일에서 줄 번호를 어떻게 얻을 수 있습니까? 이것은 ARM 아치의 Linux입니다.커널에서 라인 번호를 찾으십시오.
PC는 get_next_timer_interrupt에있다 + 0xac/0x2b8
커널은 다양한 디버그 옵션을 활성화 할 수 있지만,해야 할 수도 있습니다 '은 addr2line'당신이 주소에 대해 이름과 줄 번호를 파일을 제공해야합니다. http://elinux.org/Addr2line_for_kernel_debugging
이것은 예외가 get_next_timer_interrupt+0xac
주소에 발생했음을 의미합니다. 0xac
은 get_next_timer_interrupt
절차의 오프셋입니다. 0x2b8
은 예외가 발생한 프로 시저의 길이 (get_next_timer_interrupt
)를 의미합니다.
skorgon 작성한대로 addr2line
을 사용하여 디코딩하거나 objdump
명령을 사용하여 Linux 커널을 디스 어셈블하고 커널 소스에서 문제가있는 행을 찾을 수 있습니다. 물론 리눅스 커널은 디버깅 심볼로 컴파일되어야한다.
이 질문에 대한 답변도 참조하십시오. http://stackoverflow.com/questions/6151538/addr2line-on-kernel-module – Eugene