函数逻辑报告 |
Source Code:kernel\events\uprobes.c |
Create Date:2022-07-27 15:07:53 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:prepare_uretprobe
函数原型:static void prepare_uretprobe(struct uprobe *uprobe, struct pt_regs *regs)
返回类型:void
参数:
类型 | 参数 | 名称 |
---|---|---|
struct uprobe * | uprobe | |
struct pt_regs * | regs |
1872 | utask等于Allocate a uprobe_task object for the task if if necessary.* Called when the thread hits a breakpoint.* Returns:* - pointer to new uprobe_task on success* - NULL otherwise |
1873 | 如果非utask则返回 |
1876 | 如果depth大于等于MAX_URETPROBE_DEPTH则 |
1877 | atelimited messages with local ratelimit_state,* no local ratelimit_state used in the !PRINTK case(formational "uprobe: omit uretprobe due to nestedness limit pid/tgid=%d/%d\n", pid, tgid) |
1880 | 返回 |
1884 | 如果非ri则返回 |
1887 | trampoline_vaddr等于Current area->vaddr notion assume the trampoline address is always* equal area->vaddr.* Returns -1 in case the xol_area is not allocated. |
1889 | 如果orig_ret_vaddr恒等于负1则转到:fail |
1893 | chained等于orig_ret_vaddr恒等于trampoline_vaddr |
1894 | cleanup_return_instances(utask, chained, regs) |
1901 | 如果chained则 |
1902 | 如果非return_instances则 |
1907 | uprobe_warn(当前进程, "handle tail call") |
1908 | 转到:fail |
1913 | uprobe等于get_uprobe(uprobe) |
1914 | func等于instruction_pointer(regs) |
1915 | stack pointer 等于user_stack_pointer(regs) |
1919 | depth自加 |
1920 | keep as stack 等于return_instances |
1921 | return_instances等于ri |
1923 | 返回 |
1924 | fail : |
名称 | 描述 |
---|---|
handler_chain |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |