Function report |
Source Code:arch\x86\kernel\unwind_orc.c |
Create Date:2022-07-28 08:51:05 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| home page | Tree |
| Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:unwind_next_frame
Proto:bool unwind_next_frame(struct unwind_state *state)
Type:bool
Parameter:
| Type | Parameter | Name |
|---|---|---|
| struct unwind_state * | state |
| 386 | bool indirect = false |
| 388 | If unwind_done(state) Then Return false |
| 395 | If regs && ser_mode(regs) determines whether a register set came from user* mode Then Go to the_end |
| 405 | If Not orc Then |
| 413 | error = true |
| 421 | Go to the_end |
| 426 | Case sp_reg == ORC_REG_SP |
| 430 | Case sp_reg == ORC_REG_BP |
| 434 | Case sp_reg == ORC_REG_SP_INDIRECT |
| 439 | Case sp_reg == ORC_REG_BP_INDIRECT |
| 444 | Case sp_reg == ORC_REG_R10 |
| 451 | Break |
| 453 | Case sp_reg == ORC_REG_R13 |
| 460 | Break |
| 462 | Case sp_reg == ORC_REG_DI |
| 469 | Break |
| 471 | Case sp_reg == ORC_REG_DX |
| 478 | Break |
| 480 | Default |
| 486 | If indirect Then |
| 487 | If Not deref_stack_reg(state, sp, & sp) Then Go to err |
| 496 | If Not deref_stack_reg(state, ip_p, & ip) Then Go to err |
| 503 | regs = NULL |
| 504 | signal = false |
| 505 | Break |
| 507 | Case type == ORC_TYPE_REGS |
| 508 | If Not deref_stack_regs(state, sp, & ip, & sp) Then |
| 511 | Go to err |
| 515 | full_regs = true |
| 516 | signal = true |
| 517 | Break |
| 519 | Case type == ORC_TYPE_REGS_IRET |
| 520 | If Not deref_stack_iret_regs(state, sp, & ip, & sp) Then |
| 523 | Go to err |
| 526 | regs = sp - IRET_FRAME_OFFSET |
| 527 | full_regs = false |
| 528 | signal = true |
| 529 | Break |
| 531 | Default |
| 534 | Break |
| 544 | Case bp_reg == ORC_REG_PREV_SP |
| 549 | Case bp_reg == ORC_REG_BP |
| 554 | Default |
| 569 | preempt_enable() |
| 570 | Return true |
| 572 | err : |
| 573 | error = true |
| 575 | the_end : |
| 576 | preempt_enable() |
| 577 | type = STACK_TYPE_UNKNOWN |
| 578 | Return false |
| 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 |