函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:arch\x86\kernel\unwind_frame.c Create Date:2022-07-27 09:50:49
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:__unwind_start

函数原型:void __unwind_start(struct unwind_state *state, struct task_struct *task, struct pt_regs *regs, unsigned long *first_frame)

返回类型:void

参数:

类型参数名称
struct unwind_state *state
struct task_struct *task
struct pt_regs *regs
unsigned long *first_frame
371  memset(state, 0, state的长度)
372  task等于task
373  got_irq等于regs
376  如果regsser_mode(regs) determines whether a register set came from user* mode
377  type等于STACK_TYPE_UNKNOWN
378  返回
381  bp等于get_frame_pointer(task, regs)
392  如果regs Return frame for iretq 恒等于0且sp大于等于first_frame
393  next_bp等于bp
394  bp等于sp减1
398  get_stack_info(bp, task, & stack_info, & stack_mask)
400  update_stack_state(state, bp)
407  当非unwind_done(state)且非on_stack( & stack_info, first_frame, sizeof(long))或next_bp恒等于NULLbp小于first_frame的值循环
410  unwind_next_frame(state)