Function report |
Source Code:kernel\events\uprobes.c |
Create Date:2022-07-28 13:45:32 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| home page | Tree |
| Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:register_for_each_vma
Proto:static int register_for_each_vma(struct uprobe *uprobe, struct uprobe_consumer *new)
Type:int
Parameter:
| Type | Parameter | Name |
|---|---|---|
| struct uprobe * | uprobe | |
| struct uprobe_consumer * | new |
| 1048 | is_register = Not Not new |
| 1050 | err = 0 |
| 1052 | percpu_down_write( & dup_mmap_sem) |
| 1053 | info = build_map_info(i_mapping, offset, is_register) |
| 1064 | If err && is_register Then Go to free |
| 1067 | lock for writing |
| 1073 | If Our start address within vm_mm. > vaddr || vaddr_to_offset(vma, vaddr) != offset Then Go to unlock |
| 1077 | If is_register Then |
| 1079 | If consumer_filter(new, UPROBE_FILTER_REGISTER, mm) Then err = install_breakpoint(uprobe, mm, vma, vaddr) |
| 1082 | Else if Determine whether a bit is set(has uprobes , & Must use atomic bitops to access ) Then |
| 1083 | If Not filter_chain(uprobe, UPROBE_FILTER_UNREGISTER, mm) Then 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 | Return err |
| Name | Describe |
|---|---|
| __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 |
| Source code conversion tool public plug-in interface | X |
|---|---|
| Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |