| 91 | } |
| 92 | |
| 93 | void DebugManager::run() |
| 94 | { |
| 95 | // save all modified files before debugging. |
| 96 | dpfGetService(EditorService)->saveAll(); |
| 97 | |
| 98 | AbstractDebugger::RunState state = currentDebugger->getRunState(); |
| 99 | switch (state) { |
| 100 | case AbstractDebugger::RunState::kNoRun: |
| 101 | case AbstractDebugger::RunState::kPreparing: |
| 102 | { |
| 103 | LanguageService *service = dpfGetService(LanguageService); |
| 104 | if (service) { |
| 105 | auto generator = service->create<LanguageGenerator>(activeProjectKitName); |
| 106 | if (generator) { |
| 107 | QString debugger = generator->debugger(); |
| 108 | if (debuggers.contains(debugger) && currentDebugger != debuggers[debugger]) { |
| 109 | disconnect(currentDebugger, &AbstractDebugger::runStateChanged, this, &DebugManager::handleRunStateChanged); |
| 110 | currentDebugger = debuggers[debugger]; |
| 111 | connect(currentDebugger, &AbstractDebugger::runStateChanged, this, &DebugManager::handleRunStateChanged); |
| 112 | } |
| 113 | } else { |
| 114 | auto windowService = dpfGetService(WindowService); |
| 115 | windowService->notify(1, tr("Warning"), tr("The project does not have an associated build kit. Please reopen the project and select the corresponding build tool."), {}); |
| 116 | } |
| 117 | } |
| 118 | AsynInvoke(currentDebugger->startDebug()); |
| 119 | break; |
| 120 | } |
| 121 | case AbstractDebugger::RunState::kRunning: |
| 122 | // TODO(mozart):stop debug |
| 123 | break; |
| 124 | case AbstractDebugger::RunState::kStopped: |
| 125 | continueDebug(); |
| 126 | break; |
| 127 | default: |
| 128 | ;// do nothing. |
| 129 | } |
| 130 | } |
| 131 | |
| 132 | void DebugManager::remoteDebug(RemoteInfo info) |
| 133 | { |
no test coverage detected