| 748 | } |
| 749 | |
| 750 | void Debugger::GlobalBreakpointInServerThread(GlobalBreakpointReason reason) |
| 751 | { |
| 752 | if (debuggingDisabled_) return; |
| 753 | |
| 754 | DEBUG("Debugger::GlobalBreakpointInServerThread(): Reason %d", reason); |
| 755 | { |
| 756 | std::unique_lock<std::mutex> lk(breakpointMutex_); |
| 757 | isPaused_ = true; |
| 758 | } |
| 759 | |
| 760 | messageHandler_.SendGlobalBreakpointTriggered(reason); |
| 761 | |
| 762 | { |
| 763 | std::unique_lock<std::mutex> lk(breakpointMutex_); |
| 764 | breakpointCv_.wait(lk, [this]() { return !this->isPaused_; }); |
| 765 | } |
| 766 | |
| 767 | DEBUG("Continuing from breakpoint."); |
| 768 | ServerThreadReentry(); |
| 769 | } |
| 770 | |
| 771 | void Debugger::PushFrame(CallStackFrame const & frame) |
| 772 | { |
nothing calls this directly
no test coverage detected