如何解决如何在Centos6中获取符号地址vmalloc_node_range
static struct kprobe kp={.symbol_name = "kallsyms_lookup_name",};
int get_kallsyms_lookup_name(void)
{
int ret = register_kprobe(&kp);
if(ret < 0){
printk("[err] %s. register_kprobe failed,ret:%d\n",__FUNCTION__,ret);
return ret;
}
printk("[info] %s. kprobe at addr:%p,kp.addr,ret);
orig_kallsyms_lookup_name = (kallsyms_lookup_name_t)(void*)kp.addr;
unregister_kprobe(&kp);
return ret;
}
static int __init init(void)
{
if(get_kallsyms_lookup_name() < 0)
{
printk("[err] %s failed!\n",__FUNCTION__);
return -1;
}
___vmalloc_node_range = (void *)orig_kallsyms_lookup_name("__vmalloc_node");
if(!___vmalloc_node_range)
printk("error");
return -1;
}
我需要它来获得vmalloc_node_range
,但它只得到vmalloc_node
。
#define START _AC(0xffffffffa0000000,UL)
#define END _AC(0xffffffffff000000,UL)
我必须为我的模块请求START
和END
之间的内存。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。