| 858 | } |
| 859 | |
| 860 | void Debugger::GlobalBreakpointInServerThread(GlobalBreakpointReason reason) |
| 861 | { |
| 862 | if (debuggingDisabled_) return; |
| 863 | |
| 864 | Debug("Debugger::GlobalBreakpointInServerThread(): Reason %d", reason); |
| 865 | { |
| 866 | std::unique_lock<std::mutex> lk(breakpointMutex_); |
| 867 | isPaused_ = true; |
| 868 | } |
| 869 | |
| 870 | messageHandler_.SendGlobalBreakpointTriggered(reason); |
| 871 | |
| 872 | { |
| 873 | std::unique_lock<std::mutex> lk(breakpointMutex_); |
| 874 | breakpointCv_.wait(lk, [this]() { return !this->isPaused_; }); |
| 875 | } |
| 876 | |
| 877 | Debug("Continuing from breakpoint."); |
| 878 | ServerThreadReentry(); |
| 879 | } |
| 880 | |
| 881 | void Debugger::PushFrame(CallStackFrame const & frame) |
| 882 | { |
nothing calls this directly
no test coverage detected