class StepIntoThreadController

Defined at line 29 of file ../../src/developer/debug/zxdb/client/step_into_thread_controller.h

Implements a user-level "step into" command. On top of the regular step into, this provides

an option to skip function prologues.

Function prologues are the code at the beginning of a function that sets up the stack frame,

and function parameters and backtraces might not be correct in this address range. Therefore,

we usually want to step through this prologue when stepping into a new function so that the

state is valid when the user inspects it.

Public Methods

void StepIntoThreadController (StepMode mode, FunctionReturnCallback function_return, fit::deferred_callback on_done)

Constructor for kSourceLine and kInstruction modes. It will initialize itself to the thread's

current position when the thread is attached.

The function_return callback (if supplied) will be issued when the "step into" terminates with

the completion of the function.

Defined at line 27 of file ../../src/developer/debug/zxdb/client/step_into_thread_controller.cc

void StepIntoThreadController (const FileLine & line, FunctionReturnCallback function_return, fit::deferred_callback on_done)

Steps given the source file/line.

Defined at line 33 of file ../../src/developer/debug/zxdb/client/step_into_thread_controller.cc

void StepIntoThreadController (AddressRanges ranges, FunctionReturnCallback function_return, fit::deferred_callback on_done)

Constructor for a kAddressRange mode (the mode is implicit). Continues execution as long as the

IP is in range.

Defined at line 39 of file ../../src/developer/debug/zxdb/client/step_into_thread_controller.cc

void ~StepIntoThreadController ()

Defined at line 45 of file ../../src/developer/debug/zxdb/client/step_into_thread_controller.cc

void InitWithThread (Thread * thread, fit::callback<void (const Err &)> cb)

ThreadController implementation.

Defined at line 47 of file ../../src/developer/debug/zxdb/client/step_into_thread_controller.cc

bool should_skip_prologue ()

Controls whether this class skips function prologues that it might step into. See class

comment above. Defaults to true.

Defined at line 54 of file ../../src/developer/debug/zxdb/client/step_into_thread_controller.h

void set_should_skip_prologue (bool skip)

Defined at line 55 of file ../../src/developer/debug/zxdb/client/step_into_thread_controller.h

ContinueOp GetContinueOp ()

Defined at line 59 of file ../../src/developer/debug/zxdb/client/step_into_thread_controller.cc

const char * GetName ()

Defined at line 62 of file ../../src/developer/debug/zxdb/client/step_into_thread_controller.h

StopOp OnThreadStop (debug_ipc::ExceptionType stop_type, const std::vector<fxl::WeakPtr<Breakpoint>> & hit_breakpoints)

Defined at line 65 of file ../../src/developer/debug/zxdb/client/step_into_thread_controller.cc