class FinishThreadController

Defined at line 31 of file ../../src/developer/debug/zxdb/client/finish_thread_controller.h

Thread controller that runs a given stack frame to its completion. This can finish more than one

frame at once, and there could be any combination of physical and inline frames being exited

from.

This works by first finishing to the nearest physical frame using the

FinishPhysicalFrameThreadController (if there is no physical frame above the one being finished,

this will be a no-op). Then any inline frames will be iteratively finished using the

StepOverThreadController to step over the inline code ranges until the desired frame is reached.

Public Methods

void FinishThreadController (Stack & stack, size_t frame_to_finish, FunctionReturnCallback cb, fit::deferred_callback on_done)

Finishes the given frame of the stack, leaving control at frame |frame_to_finish + 1] when the

controller is complete.

The frame_to_finish must have its fingerprint computable. This means that either you're

finishing frame 0, or have synced all frames.

The optional callback will be issued when a physical frame is stepped out of. It will be on

the instruction immediately following the return. This controller might be used to step out

of inline frames or a physical frame followed by some inline frames. This will be issued on the

outermost physical frame, and never on any inline frames. So it might not get called at all,

and the call might not be the outermost function call from the user's perspective.

Defined at line 23 of file ../../src/developer/debug/zxdb/client/finish_thread_controller.cc

void ~FinishThreadController ()

Defined at line 51 of file ../../src/developer/debug/zxdb/client/finish_thread_controller.cc

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

ThreadController implementation.

Defined at line 53 of file ../../src/developer/debug/zxdb/client/finish_thread_controller.cc

const char * GetName ()

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

ContinueOp GetContinueOp ()

Defined at line 105 of file ../../src/developer/debug/zxdb/client/finish_thread_controller.cc

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

Defined at line 113 of file ../../src/developer/debug/zxdb/client/finish_thread_controller.cc