커널 심볼테이블관련해서 질문 드립니다.

tsgates의 이미지

학교에서 기말 프로젝트로 커널 스핀락 프로파일러를 만들고 있는데요

Symbol Table(System.map)에서는 주소의 범위가

0xc00100000 ~ 0xc05d0000 까지의 주소에 해당하는 심볼과 주소의 매핑이 이루어져 있는 걸 보았는데요

또, /proc/kallsyms에는 저기에 더해져서 각각 모듈에서 쓰는 심볼들이 0xd00000000 부터 매핑이 되어 있더군요

그런데 직접 특정 함수를 부르는 caller의 pc와 특정 오브젝트의 pointer를 계속 기록해 보았는데요

System.map에서 찾을 수 있는 Object의 pointer가 있는가 하면

System.map, kallsysms에서도 매핑이 되지 않는, 그러니까 0xc05d0000 ~ 0xd00000000 이 사이에 들어가는 주소들이 계속 프로파일 되고 있습니다.

1174 [730] caller : 0xc0185323 lock : 0xc74f2bd0 next : 0x2de
1175 [731] caller : 0xc01555f0 lock : 0xcfac3348
1176 [732] caller : 0xc01863aa lock : 0xcfa69c80 next : 0x2df

저기가 제가 트레킹하고 있는 오브젝트(spinlock)과 그를 부른 caller의 pc를 출력했는데 caller는 kernel symbol table에 있는 이름과 잘 매핑이 됩니다만, 저기에 있는 lock들의 주소들은 이름을 얻어 올 수 없는 이상한 주소로 매핑이 되어 있어서..

어떻게 해결 해야 될지 어렵네요 .. @@

도와 주십쇼 .. 흑 ㅡㅜ