函数逻辑报告 |
Source Code:kernel\ptrace.c |
Create Date:2022-07-27 10:13:33 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:ptrace_request
函数原型:int ptrace_request(struct task_struct *child, long request, unsigned long addr, unsigned long data)
返回类型:int
参数:
类型 | 参数 | 名称 |
---|---|---|
struct task_struct * | child | |
long | request | |
unsigned long | addr | |
unsigned long | data |
1013 | 当:request恒等于PTRACE_PEEKTEXT |
1014 | 当:request恒等于PTRACE_PEEKDATA |
1015 | 返回:generic_ptrace_peekdata(child, addr, data) |
1016 | 当:request恒等于PTRACE_POKETEXT |
1017 | 当:request恒等于PTRACE_POKEDATA |
1018 | 返回:generic_ptrace_pokedata(child, addr, data) |
1021 | 当:request恒等于PTRACE_OLDSETOPTIONS |
1024 | ret等于ptrace_setoptions(child, data) |
1025 | 退出 |
1026 | 当:request恒等于PTRACE_GETEVENTMSG |
1028 | 退出 |
1030 | 当:request恒等于PTRACE_PEEKSIGINFO |
1034 | 当:request恒等于PTRACE_GETSIGINFO |
1035 | ret等于ptrace_getsiginfo(child, & siginfo) |
1036 | 如果非ret则ret等于copy_siginfo_to_user(datavp, & siginfo) |
1038 | 退出 |
1040 | 当:request恒等于PTRACE_SETSIGINFO |
1041 | ret等于copy_siginfo_from_user( & siginfo, datavp) |
1042 | 如果非ret则ret等于ptrace_setsiginfo(child, & siginfo) |
1044 | 退出 |
1046 | 当:request恒等于PTRACE_GETSIGMASK |
1067 | 当:request恒等于PTRACE_SETSIGMASK |
1075 | 如果copy_from_user( & new_set, datavp, sizeof(sigset_t))则 |
1087 | spin_lock_irq( & siglock) |
1089 | spin_unlock_irq( & siglock) |
1093 | ret等于0 |
1094 | 退出 |
1097 | 当:request恒等于PTRACE_INTERRUPT |
1108 | 如果此条件成立可能性小(为编译器优化)(!seized || !lock_task_sighand(child, & flags))则退出 |
1117 | 如果此条件成立可能性大(为编译器优化)(task_set_jobctl_pending(child, JOBCTL_TRAP_STOP))则ptrace_signal_wake_up(child, JOBCTL_*, siglock protected: & JOBCTL_LISTENING) |
1120 | unlock_task_sighand(child, & flags) |
1121 | ret等于0 |
1122 | 退出 |
1124 | 当:request恒等于PTRACE_LISTEN |
1133 | 如果此条件成立可能性小(为编译器优化)(!seized || !lock_task_sighand(child, & flags))则退出 |
1136 | si等于last_siginfo |
1137 | 如果此条件成立可能性大(为编译器优化)(si && (si_code >> 8) == Extended result codes which enabled by means other than options. )则 |
1143 | 如果 JOBCTL_*, siglock protected: 按位与JOBCTL_TRAP_NOTIFY则ptrace_signal_wake_up(child, true) |
1145 | ret等于0 |
1147 | unlock_task_sighand(child, & flags) |
1148 | 退出 |
1150 | 当:request恒等于PTRACE_DETACH |
1151 | ret等于ptrace_detach(child, data) |
1152 | 退出 |
1181 | 当:request恒等于PTRACE_SINGLESTEP |
1187 | 当:request恒等于PTRACE_SYSEMU |
1188 | 当:request恒等于PTRACE_SYSEMU_SINGLESTEP |
1190 | 当:request恒等于PTRACE_SYSCALL |
1191 | 当:request恒等于PTRACE_CONT |
1192 | 返回:ptrace_resume(child, request, data) |
1194 | 当:request恒等于PTRACE_KILL |
1195 | 如果进程退出时状态则返回:0 |
1197 | 返回:ptrace_resume(child, request, SIGKILL) |
1223 | 当:request恒等于PTRACE_SECCOMP_GET_FILTER |
1227 | 当:request恒等于PTRACE_SECCOMP_GET_METADATA |
1231 | 默认 |
1232 | 退出 |
1235 | 返回:ret |
名称 | 描述 |
---|---|
compat_ptrace_request | |
arch_ptrace |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |