Function report |
Source Code:arch\x86\kernel\kprobes\core.c |
Create Date:2022-07-28 08:38:45 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
home page | Tree |
Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:Called from kretprobe_trampoline
Proto:__used __visible void *trampoline_handler(struct pt_regs *regs)
Type:void
Parameter:
Type | Parameter | Name |
---|---|---|
struct pt_regs * | regs |
763 | struct kretprobe_instance * ri = NULL |
766 | orig_ret_address = 0 |
767 | unsigned long trampoline_address = (unsigned long) & kretprobe_trampoline |
768 | kprobe_opcode_t * correct_ret_addr = NULL |
770 | bool skipped = false |
779 | kcb = get_kprobe_ctlblk() |
783 | INIT_HLIST_HEAD( & empty_rp) |
784 | kretprobe_hash_lock(current process, & head, & flags) |
788 | cs |= get_kernel_rpl() |
789 | gs = 0 |
792 | frame_pointer = sp |
793 | ip = trampoline_address |
794 | orig_ax = ~0UL |
810 | If task != current process Then Continue |
821 | If fp != frame_pointer Then |
824 | skipped = true |
825 | Continue |
828 | orig_ret_address = ret_addr |
833 | If orig_ret_address != trampoline_address Then Break |
844 | correct_ret_addr = ret_addr |
846 | If task != current process Then Continue |
849 | If fp != frame_pointer Then Continue |
852 | orig_ret_address = ret_addr |
854 | __this_cpu_write(current_kprobe, & kp) |
855 | ret_addr = correct_ret_addr |
860 | recycle_rp_inst(ri, & empty_rp) |
862 | If orig_ret_address != trampoline_address Then Break |
873 | __this_cpu_write(current_kprobe, NULL) |
874 | preempt_enable() |
880 | Return orig_ret_address |
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 |