Perform a step return on the target. Step return completes the execution of the current function and returns to its caller. This operation relies heavily on stack frame analysis, which is done by the DebugAdapters. If a DebugAdapter does not support (i.e., overload
(self)
| 872 | return dbgcore.BNDebuggerStepOver(self.handle, il) |
| 873 | |
| 874 | def step_return(self) -> bool: |
| 875 | """ |
| 876 | Perform a step return on the target. |
| 877 | |
| 878 | Step return completes the execution of the current function and returns to its caller. This operation relies |
| 879 | heavily on stack frame analysis, which is done by the DebugAdapters. |
| 880 | |
| 881 | If a DebugAdapter does not support (i.e., overload) this function, a fallback handling is provided by the |
| 882 | DebuggerController. It checks the MLIL function and put breakpoints on all returning instructions and then resume |
| 883 | the target. By the time it breaks, the target is about to return from the current function. |
| 884 | |
| 885 | This fallback behavior is slightly different from that offered by the LLDB and DbgEng adapter, which returns |
| 886 | from the current function and break afterwards. |
| 887 | |
| 888 | The call is asynchronous and returns before the target stops. |
| 889 | |
| 890 | :return: the reason for the stop |
| 891 | """ |
| 892 | return dbgcore.BNDebuggerStepReturn(self.handle) |
| 893 | |
| 894 | def run_to(self, address) -> bool: |
| 895 | """ |
nothing calls this directly
no outgoing calls
no test coverage detected