函数逻辑报告 |
Source Code:kernel\events\uprobes.c |
Create Date:2022-07-27 15:06:57 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:register_for_each_vma
函数原型:static int register_for_each_vma(struct uprobe *uprobe, struct uprobe_consumer *new)
返回类型:int
参数:
类型 | 参数 | 名称 |
---|---|---|
struct uprobe * | uprobe | |
struct uprobe_consumer * | new |
1048 | is_register等于非非new |
1050 | err等于0 |
1052 | percpu_down_write( & dup_mmap_sem) |
1053 | info等于build_map_info(i_mapping, offset, is_register) |
1055 | 如果是错误则 |
1064 | 如果err且is_register则转到:free |
1067 | lock for writing |
1073 | 如果Our start address within vm_mm. 大于vaddr或vaddr_to_offset(vma, vaddr)不等于offset则转到:unlock |
1077 | 如果is_register则 |
1079 | 如果consumer_filter(new, UPROBE_FILTER_REGISTER, mm)则err等于install_breakpoint(uprobe, mm, vma, vaddr) |
1082 | 否则如果test_bit(has uprobes , & Must use atomic bitops to access )则 |
1083 | 如果非filter_chain(uprobe, UPROBE_FILTER_UNREGISTER, mm)则err或等于remove_breakpoint(uprobe, mm, vaddr) |
1088 | unlock : |
1089 | lease a write lock |
1090 | free : |
1092 | info等于free_map_info(info) |
1094 | out : |
1095 | percpu_up_write( & dup_mmap_sem) |
1096 | 返回:err |
名称 | 描述 |
---|---|
__uprobe_unregister | |
__uprobe_register | __uprobe_register - register a probe*@inode: the file in which the probe has to be placed |
uprobe_apply | probe_apply - unregister an already registered probe.*@inode: the file in which the probe has to be removed.*@offset: offset from the start of the file.*@uc: consumer which wants to add more or remove some breakpoints*@add: add or remove the breakpoints |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |