Xen도 얽히어 있고 해서 커널디버거를 사용할수 없는 환경입니다.
페이지폴트가 발생했을 시에 페이지폴트 핸들러가 어떤 코드에 의해 불려진지를 알고 싶습니다.
함수 스택을 확인하는 인라인 어셈블리를 작성하고 싶습니다.(어쩌면 심볼 정보가 없고 해서 함수의 포인터밖에 확인이 안될지도...)
고수님들의 조언좀 부탁드립니다. 어떤 정보를 찾아 보면 도움을 얻을 수 있을런지요?
.
Xen도 얽히어 있고 해서 커널디버거를 사용할수 없는 환경입니다.
페이지폴트가 발생했을 시에 페이지폴트 핸들러가 어떤 코드에 의해 불려진지를 알고 싶습니다.
함수 스택을 확인하는 인라인 어셈블리를 작성하고 싶습니다.(어쩌면 심볼 정보가 없고 해서 함수의 포인터밖에 확인이 안될지도...)
고수님들의 조언좀 부탁드립니다. 어떤 정보를 찾아 보면 도움을 얻을 수 있을런지요?
.
안녕하세요.
여러 방법들이 있겠지만 저는 보통 2가지 방법을 주로 사용합니다.
gdb(kgdb) 를 이용하거나 print_stack_trace() 함수를 이용합니다.
전자는 말그대로 커널 자체를 gdb에 attach 해서 breakpoint 등을 걸어서 backtrace 정보를 보는 방법이고 후자는
필요한 부분에 위 함수를 호출하게 해서 kernel log를 출력하게 하는 것입니다.
더 자세한 설명을 원하시면 답글 주세요.