??????Linux????2.6????汾???????????????????????????????????????EXPORT_SYMBOL??EXPORT_SYMBOL_GPL???????????????????????????á????????????е??????е????????磬??3.8.0??????У?do_page_fault??б???????

???????????????????????do_page_fault?????????Щ?????????Щ??????????????????

??????????do_page_fault??????????з?????

????1????????????EXPORT_SYMBOL(do_page_fault)??EXPORT_SYMBOL_GPL(do_page_fault)??

??????????????????????????????Ρ?????????????????£????????????

????2?????kallsyms_lookup_name???

????kallsyms_lookup_name???????????????????????????????????????????????????е???kallsyms_lookup_name("do_page_fault")?????do_page_fault?????????

??????????????????????kallsyms_lookup_name????????????????

????3?????/boot/System.map-<kernel-version>??????????????????????????

????System.map-<kernel-version>??????????????????????????????????????????????????????????????System.map-<kernel-version>???????????????System.map-<kernel-version>?ж?????????????????????У?kernel-version???????'uname -r'??á?

?????????????????о??????????????е????System.map-<kernel-version>????????????????????????????????????????????

????4?????/proc/kallsyms??????????????????????????

????/proc/kallsyms???????????????????????洢?????????????????????б??????????????????????????????Щ?????????????????????????????ж?????????????????????System.map-<kernel-version>??????

???????????????????2.6.37???????????????а???/proc/kallsyms?ж??????????????Щ?汾?У??????????????μ?汾?У???????????з?????????0??????root?????????/proc/kallsyms?ж??????????????????????????root??????????????????y??????????????????

#cat /proc/kallsyms | grep "<do_page_fault>" | awk '{print $1}'

??????????????????????t??飬/proc/kallsyms?з??????????Systemp.map-<kernel-version>????Щ??