常州语言网站建设龙岩网站开发
news/
2025/10/8 21:34:06/
文章来源:
常州语言网站建设,龙岩网站开发,施工企业质量月活动总结报告,甘肃自助建站系统怎么用hw_breakpoint 是由处理器提供专门断点寄存器来保存一个地址#xff0c;是需要处理器支持的。处理器在执行过程中会不断去匹配#xff0c;当匹配上后则会产生中断。
内核自带了硬件断点的样例linux-3.16\samples\hw_breakpoint\data_breakpoint.c
static void sample_hbp_h…hw_breakpoint 是由处理器提供专门断点寄存器来保存一个地址是需要处理器支持的。处理器在执行过程中会不断去匹配当匹配上后则会产生中断。
内核自带了硬件断点的样例linux-3.16\samples\hw_breakpoint\data_breakpoint.c
static void sample_hbp_handler(struct perf_event *bp,struct perf_sample_data *data,struct pt_regs *regs)
{printk(KERN_INFO %s value is changed\n, ksym_name);dump_stack();printk(KERN_INFO Dump stack from sample_hbp_handler\n);
}static int __init hw_break_module_init(void* addr)
{int ret;struct perf_event_attr attr;hw_breakpoint_init(attr);attr.bp_addr addr;attr.bp_len HW_BREAKPOINT_LEN_4;//监控addr开始的4字节attr.bp_type HW_BREAKPOINT_W | HW_BREAKPOINT_R;//读写该地址都能触发sample_hbp register_wide_hw_breakpoint(attr, sample_hbp_handler, NULL);if (IS_ERR((void __force *)sample_hbp)) {ret PTR_ERR((void __force *)sample_hbp);goto fail;}printk(KERN_INFO HW Breakpoint for write installed\n);return 0;fail:printk(KERN_INFO Breakpoint registration failed\n);return ret; 看网上说ARM Architecture Reference Manual Supplement ARMv8.1, for ARMv8-A architecture profile这些文档的degug register里面有。文档可以在这个网站下载 https://developer.arm.com/documentation Documentation – Arm Developer 可以看到应该是每个cpu都注册了一个。感觉应该是在一个cpu上注册所有cpu都会去检查原理不清楚上面的文档没有看明白猜测的
struct perf_event * __percpu *
register_wide_hw_breakpoint(struct perf_event_attr *attr,perf_overflow_handler_t triggered,void *context)
{struct perf_event * __percpu *cpu_events, *bp;
........................................for_each_online_cpu(cpu) {bp perf_event_create_kernel_counter(attr, cpu, NULL,triggered, context);
...................................................
}
暂时不写了
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/931965.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!