diff --git a/Extension/CHANGELOG.md b/Extension/CHANGELOG.md index fd018dd63..a50e91277 100644 --- a/Extension/CHANGELOG.md +++ b/Extension/CHANGELOG.md @@ -1,5 +1,11 @@ # C/C++ for Visual Studio Code Changelog +## Version 1.27.4: September 8, 2025 +### Bug Fixes +* Fix crash recovery. [#13838](https://github.com/microsoft/vscode-cpptools/issues/13838) +* Fix a case of unintialized memory in cpptools-srv. +* Fix excessive cpptools messages when scrolling. + ## Version 1.27.3: September 3, 2025 ### Enhancements * Show a warning when too many files are processed in a workspace. [#10828](https://github.com/microsoft/vscode-cpptools/issues/10828) diff --git a/Extension/package.json b/Extension/package.json index 1bb91ae14..74dcdae5e 100644 --- a/Extension/package.json +++ b/Extension/package.json @@ -2,7 +2,7 @@ "name": "cpptools", "displayName": "C/C++", "description": "C/C++ IntelliSense, debugging, and code browsing.", - "version": "1.27.3-main", + "version": "1.27.4-main", "publisher": "ms-vscode", "icon": "LanguageCCPP_color_128x.png", "readme": "README.md", diff --git a/Extension/src/LanguageServer/client.ts b/Extension/src/LanguageServer/client.ts index 9b1cd57ba..3ac822a10 100644 --- a/Extension/src/LanguageServer/client.ts +++ b/Extension/src/LanguageServer/client.ts @@ -1706,9 +1706,10 @@ export class DefaultClient implements Client { // Wait 1 second to allow time for the file watcher to signal a crash call stack write has occurred. setTimeout(() => { + const sanitizedLspMessage = this.lastInvokedLspMessage.replace('/', '.'); telemetry.logLanguageServerEvent("languageClientCrash", { - lastInvokedLspMessage: this.lastInvokedLspMessage + lastInvokedLspMessage: sanitizedLspMessage }, { restarting: Number(restart), diff --git a/Extension/src/LanguageServer/clientCollection.ts b/Extension/src/LanguageServer/clientCollection.ts index 6788eb65d..a6b21f431 100644 --- a/Extension/src/LanguageServer/clientCollection.ts +++ b/Extension/src/LanguageServer/clientCollection.ts @@ -121,6 +121,7 @@ export class ClientCollection { const client: cpptools.Client = pair[1]; const newClient: cpptools.Client = this.createClient(client.RootFolder, true); + await newClient.ready; for (const document of client.TrackedDocuments.values()) { this.transferOwnership(document, client); await newClient.sendDidOpen(document);