ULONG currentProcessId(CIDebugClient *client) { IInterfacePointer<IDebugSystemObjects> sysObjects(client); if (sysObjects) return currentProcessId(sysObjects.data()); return 0; }
// Complete stop parameters with common parameters and report static inline ExtensionContext::StopReasonMap completeStopReasons(CIDebugClient *client, ExtensionContext::StopReasonMap stopReasons, ULONG ex) { typedef ExtensionContext::StopReasonMap::value_type StopReasonMapValue; stopReasons.insert(StopReasonMapValue(std::string("executionStatus"), toString(ex))); if (const ULONG processId = currentProcessId(client)) stopReasons.insert(StopReasonMapValue(std::string("processId"), toString(processId))); const ULONG threadId = currentThreadId(client); stopReasons.insert(StopReasonMapValue(std::string("threadId"), toString(threadId))); // Any reason? const std::string reasonKey = std::string(ExtensionContext::stopReasonKeyC); if (stopReasons.find(reasonKey) == stopReasons.end()) stopReasons.insert(StopReasonMapValue(reasonKey, "unknown")); return stopReasons; }
ClangPchManager::PchManagerConnectionClient::PchManagerConnectionClient( ClangBackEnd::PchManagerClientInterface *client) : ConnectionClient(Utils::TemporaryDirectory::masterDirectoryPath() + QStringLiteral("/ClangPchManagerBackEnd-") + currentProcessId()), m_serverProxy(client, ioDevice()) { m_processCreator.setTemporaryDirectoryPattern("clangpchmanagerbackend-XXXXXX"); QDir pchsDirectory(Core::ICore::cacheResourcePath()); pchsDirectory.mkdir("pchs"); pchsDirectory.cd("pchs"); m_processCreator.setArguments({connectionName(), Core::ICore::cacheResourcePath() + "/symbol-experimental-v1.db", pchsDirectory.absolutePath()}); stdErrPrefixer().setPrefix("PchManagerConnectionClient.stderr: "); stdOutPrefixer().setPrefix("PchManagerConnectionClient.stdout: "); }
QString ClangCodeModelConnectionClient::connectionName() const { return temporaryDirectory().path() + QStringLiteral("/ClangBackEnd-") + currentProcessId(); }