函数逻辑报告 |
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 插件可实现:逻辑报告 代码生成和批量转换代码 |