| Function report | 
| Source Code: arch\x86\kernel\unwind_orc.c | Create Date:2022-07-28 08:51:09 | 
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick | 
| home page | Tree | 
| Annotation kernel can get tool activity | Download SCCT | Chinese | 
Name:__unwind_start
Proto:void __unwind_start(struct unwind_state *state, struct task_struct *task, struct pt_regs *regs, unsigned long *first_frame)
Type:void
Parameter:
| Type | Parameter | Name | 
|---|---|---|
| struct unwind_state * | state | |
| struct task_struct * | task | |
| struct pt_regs * | regs | |
| unsigned long * | first_frame | 
| 593 | If task_on_another_cpu(task) Then Go to done | 
| 596 | If regs Then | 
| 597 | If ser_mode(regs) determines whether a register set came from user* mode Then Go to done | 
| 600 | ip = Return frame for iretq | 
| 604 | full_regs = true | 
| 605 | signal = true | 
| 607 | Else if task == current process Then | 
| 608 | asm volatile | 
| 614 | Else | 
| 622 | If get_stack_info((unsignedlong * )sp, task, & stack_info, & stack_mask) Then | 
| 630 | next_page = align the pointer to the (next) page boundary ((unsignedlong)sp) | 
| 631 | If get_stack_info(next_page, task, & stack_info, & stack_mask) Then Return | 
| 643 | If regs Then | 
| 644 | unwind_next_frame(state) | 
| 645 | Return | 
| 649 | When Not unwind_done(state) && ( Not on_stack( & stack_info, first_frame, sizeof(long)) || sp <= first_frame ) cycle | 
| 652 | unwind_next_frame(state) | 
| 654 | Return | 
| 656 | done : | 
| 657 | type = STACK_TYPE_UNKNOWN | 
| 658 | Return | 
| 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 |