class StepOverThreadController

Defined at line 34 of file ../../src/developer/debug/zxdb/client/step_over_thread_controller.h

This controller causes the thread to single-step as long as the CPU is in a given address range

or any stack frame called from it. Contrast with the StepThreadController which does not do the

sub-frames.

This class works by:

1. Single-stepping in the range.

2. When the range is exited, see if the address is in a sub-frame.

3. Step out of the sub-frame if so, exit if not.

4. Repeat.

Public Methods

void StepOverThreadController (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 over" terminates with

the completion of the function. It will not be called for every function that is skipped over

as part of execution.

Defined at line 21 of file ../../src/developer/debug/zxdb/client/step_over_thread_controller.cc

void StepOverThreadController (AddressRanges range, 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 31 of file ../../src/developer/debug/zxdb/client/step_over_thread_controller.cc

void ~StepOverThreadController ()

Defined at line 40 of file ../../src/developer/debug/zxdb/client/step_over_thread_controller.cc

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

ThreadController implementation.

Defined at line 42 of file ../../src/developer/debug/zxdb/client/step_over_thread_controller.cc

void set_subframe_should_stop_callback (fit::function<bool (const Frame *)> cb)

Sets a callback that the caller can use to control whether excecution stops in a given

subframe. The subframe will be one called directly from the code range being stopped over.

This allows implementation of operations like "step until you get to a function". When the

callback returns true, the "step over" operation will complete at the current location (this

will then destroy the controller and indirectly the callback object).

When empty (the default), all subframes will be continued.

Defined at line 61 of file ../../src/developer/debug/zxdb/client/step_over_thread_controller.h

ContinueOp GetContinueOp ()

Defined at line 67 of file ../../src/developer/debug/zxdb/client/step_over_thread_controller.cc

const char * GetName ()

Defined at line 70 of file ../../src/developer/debug/zxdb/client/step_over_thread_controller.h

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

Defined at line 73 of file ../../src/developer/debug/zxdb/client/step_over_thread_controller.cc