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 |