강좌 & 팁
글 수 2,412
2011.05.29 21:22:52 (*.138.143.120)
41905
드라이버를 작성하다 보면 버그 메세지들을 많이 보게 됩니다.
또 특정 함수의 실행주소가 필요할 때가 많은데요
이름과 주소로 검색을 하는 방법을 간단히 알아 봅니다.
간단한 예로 start_kernel 함수의 위치를 찾아 봅니다.
뭐 간단히 System.map 파일을 열어 검색해도 됩니다.
하지만 오브젝트 파일에서 심볼을 분리해서 찾을 수도 있습니다.
커널 컴파일을 하면 디렉토리에 vmlinux 라는 파일이 생깁니다.
root@boggle70-desktop:linux-2.6.31# nm vmlinux | grep start_kernel
c00488e8 T start_kernel
해당 주소를 찾을수 있습니다.
반대로도 가능하겠죠?
root@boggle70-desktop:linux-2.6.31# nm vmlinux | grep c00488e8
c00488e8 t $a
c00488e8 T start_kernel
커널 버그 메세지에서 보내주는 주소를 한번에 찾고 싶을때는 위와 같이 간단한 방법이 있습니다.