From eabe5007dbd42624ef184747317ba8944b4ae120 Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Thu, 14 Aug 2025 16:48:52 -0700 Subject: [PATCH 1/3] Process sigCode and sigAddr for crashes. (#13848) * Process sigCode and sigAddr for crashes. * Change to handle early crash file creation. --- Extension/src/LanguageServer/extension.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Extension/src/LanguageServer/extension.ts b/Extension/src/LanguageServer/extension.ts index 445edc009..db96623bf 100644 --- a/Extension/src/LanguageServer/extension.ts +++ b/Extension/src/LanguageServer/extension.ts @@ -1012,7 +1012,7 @@ export function watchForCrashes(crashDirectory: string): void { // vscode.workspace.createFileSystemWatcher only works in workspace folders. try { fs.watch(crashDirectory, (event, filename) => { - if (event !== "rename") { + if (event !== "change") { return; } if (!filename || filename === prevCppCrashFile) { @@ -1177,7 +1177,7 @@ async function handleCrashFileRead(crashDirectory: string, crashFile: string, cr } const lines: string[] = data.split("\n"); - let addressData: string = ".\n"; + let addressData: string; const isCppToolsSrv: boolean = crashFile.startsWith("cpptools-srv"); const telemetryHeader: string = (isCppToolsSrv ? "cpptools-srv.txt" : crashFile) + "\n"; const filtPath: string | null = which.sync("c++filt", { nothrow: true }); @@ -1207,17 +1207,20 @@ async function handleCrashFileRead(crashDirectory: string, crashFile: string, cr crashStackStartLine = ++crashLogLine; } if (lines[crashStackStartLine].startsWith("SIG")) { - signalType = lines[crashStackStartLine] + "\n"; + signalType = `${lines[crashStackStartLine]}\n`; + addressData = `${lines[crashStackStartLine + 1]}:${lines[crashStackStartLine + 2]}\n`; // signalCode:signalAddr + crashStackStartLine += 3; } else { // The signal type may fail to be written. // Intentionally different from SIGUNKNOWN from cpptools, // and not SIG-? to avoid matching the regex in containsFilteredTelemetryData. signalType = "SIGMISSING\n"; + addressData = ".\n"; } data = telemetryHeader + signalType; let crashCallStack: string = ""; let validFrameFound: boolean = false; - for (let lineNum: number = crashStackStartLine + 1; lineNum < lines.length - 3; ++lineNum) { // skip last lines + for (let lineNum: number = crashStackStartLine; lineNum < lines.length - 3; ++lineNum) { // skip last lines const line: string = lines[lineNum]; const startPos: number = line.indexOf(startStr); let pendingCallStack: string = ""; From 33d169f0fa6c5be64e0507a9cf8393663b345287 Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Mon, 18 Aug 2025 12:50:21 -0700 Subject: [PATCH 2/3] Localization - Translated Strings (#13854) --- Extension/i18n/cht/ui/settings.html.i18n.json | 2 +- Extension/i18n/deu/ui/settings.html.i18n.json | 2 +- Extension/i18n/esn/ui/settings.html.i18n.json | 2 +- Extension/i18n/kor/ui/settings.html.i18n.json | 2 +- Extension/i18n/ptb/ui/settings.html.i18n.json | 2 +- Extension/i18n/rus/ui/settings.html.i18n.json | 2 +- Extension/i18n/trk/ui/settings.html.i18n.json | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Extension/i18n/cht/ui/settings.html.i18n.json b/Extension/i18n/cht/ui/settings.html.i18n.json index ee201d47c..5838c7f7b 100644 --- a/Extension/i18n/cht/ui/settings.html.i18n.json +++ b/Extension/i18n/cht/ui/settings.html.i18n.json @@ -44,7 +44,7 @@ "cpp.standard.description": "用於 IntelliSense 的 C++ 語言標準版本。注意: GNU 標準僅會用於查詢設定編譯器以取得 GNU 定義,而 IntelliSense 將會模擬相同的 C++ 標準版本。", "advanced.settings": "進階設定", "configuration.provider": "組態提供者", - "configuration.provider.description": "可為來源檔案提供 IntelliSense 設定資訊 VS Code 延伸模組的識別碼。例如,使用 VS Code 延伸模組識別碼 {0} 從 CMake 工具延伸模組提供組態資訊。", + "configuration.provider.description": "可為來源檔案提供 IntelliSense 設定資訊 VS Code 延伸模組的識別碼。例如,使用 VS Code 延伸模組識別碼 {0} 從 CMake Tools 延伸模組提供組態資訊。", "windows.sdk.version": "Windows SDK 版本", "windows.sdk.version.description": "要在 Windows 上使用的 Windows SDK 包含路徑版本,例如 {0}。", "mac.framework.path": "Mac 架構路徑", diff --git a/Extension/i18n/deu/ui/settings.html.i18n.json b/Extension/i18n/deu/ui/settings.html.i18n.json index aadcd4ecf..94bd6a1f6 100644 --- a/Extension/i18n/deu/ui/settings.html.i18n.json +++ b/Extension/i18n/deu/ui/settings.html.i18n.json @@ -44,7 +44,7 @@ "cpp.standard.description": "Die Version des C++-Sprachstandards, die für IntelliSense verwendet werden soll. Hinweis: GNU-Standards werden nur zum Abfragen des festgelegten Compilers zum Abrufen von GNU-Definitionen verwendet, und IntelliSense emuliert die äquivalente Version des C++-Standards.", "advanced.settings": "Erweiterte Einstellungen", "configuration.provider": "Konfigurationsanbieter", - "configuration.provider.description": "Die ID einer VS Code-Erweiterung, die IntelliSense-Konfigurationsinformationen für Quelldateien bereitstellen kann. Verwenden Sie zum Beispiel die VS Code-Erweiterungs-ID \"{0}\", um Konfigurationsinformationen aus der CMake Tools-Erweiterung bereitzustellen.", + "configuration.provider.description": "Die ID einer VS Code-Erweiterung, die IntelliSense-Konfigurationsinformationen für Quelldateien bereitstellen kann. Verwenden Sie zum Beispiel die VS Code-Erweiterungs-ID \"{0}\", um Konfigurationsinformationen aus der Erweiterung CMake Tools bereitzustellen.", "windows.sdk.version": "Windows SDK-Version", "windows.sdk.version.description": "Die Version des Windows SDK-Includepfads zur Verwendung unter Windows, z. B. \"{0}\".", "mac.framework.path": "Pfad für Mac-Framework", diff --git a/Extension/i18n/esn/ui/settings.html.i18n.json b/Extension/i18n/esn/ui/settings.html.i18n.json index 5c38d7c01..00be3468c 100644 --- a/Extension/i18n/esn/ui/settings.html.i18n.json +++ b/Extension/i18n/esn/ui/settings.html.i18n.json @@ -44,7 +44,7 @@ "cpp.standard.description": "Versión del estándar del lenguaje C++ que se va a usar para IntelliSense. Nota: Los estándares GNU solo se usan para consultar el compilador de conjuntos a fin de obtener definiciones GNU e IntelliSense emulará la versión del estándar C++ equivalente.", "advanced.settings": "Configuración avanzada", "configuration.provider": "Proveedor de configuración", - "configuration.provider.description": "Id. de una extensión de VS Code que puede proporcionar información de configuración de IntelliSense para los archivos de código fuente. Por ejemplo, use el id. de extensión de VS Code {0} para proporcionar información de configuración de la extensión Herramientas de CMake.", + "configuration.provider.description": "Id. de una extensión de VS Code que puede proporcionar información de configuración de IntelliSense para los archivos de código fuente. Por ejemplo, use el id. de extensión de VS Code {0} para proporcionar información de configuración de la extensión CMake Tools.", "windows.sdk.version": "Versión del SDK de Windows", "windows.sdk.version.description": "Versión de la ruta de acceso de inclusión del SDK de Windows SDK que debe usarse en Windows; por ejemplo, {0}.", "mac.framework.path": "Ruta de acceso de la plataforma Mac", diff --git a/Extension/i18n/kor/ui/settings.html.i18n.json b/Extension/i18n/kor/ui/settings.html.i18n.json index 13eabc839..1f1180efd 100644 --- a/Extension/i18n/kor/ui/settings.html.i18n.json +++ b/Extension/i18n/kor/ui/settings.html.i18n.json @@ -44,7 +44,7 @@ "cpp.standard.description": "IntelliSense에 사용할 C++ 언어 표준의 버전입니다. 참고: GNU 표준은 GNU 정의를 가져오기 위해 설정된 컴파일러를 쿼리하는 데만 사용되며, IntelliSense는 해당 C++ 표준 버전을 에뮬레이트합니다.", "advanced.settings": "고급 설정", "configuration.provider": "구성 공급자", - "configuration.provider.description": "소스 파일에 대한 IntelliSense 구성 정보를 제공할 수 있는 VS Code 확장의 ID입니다. 예를 들어 VS Code 확장 ID {0} 을(를) 사용하여 CMake 도구 확장의 구성 정보를 제공합니다.", + "configuration.provider.description": "소스 파일에 대한 IntelliSense 구성 정보를 제공할 수 있는 VS Code 확장의 ID입니다. 예를 들어 VS Code 확장 ID {0}을(를) 사용하여 CMake Tools 확장의 구성 정보를 제공합니다.", "windows.sdk.version": "Windows SDK 버전", "windows.sdk.version.description": "Windows에서 사용할 Windows SDK 포함 경로의 버전입니다(예: {0}).", "mac.framework.path": "Mac 프레임워크 경로", diff --git a/Extension/i18n/ptb/ui/settings.html.i18n.json b/Extension/i18n/ptb/ui/settings.html.i18n.json index d15403398..27f33807b 100644 --- a/Extension/i18n/ptb/ui/settings.html.i18n.json +++ b/Extension/i18n/ptb/ui/settings.html.i18n.json @@ -44,7 +44,7 @@ "cpp.standard.description": "A versão do padrão de linguagem C++ a ser usada para o IntelliSense. Observação: os padrões GNU são usados apenas para consultar o compilador de conjunto para obter definições de GNU e o IntelliSense emulará a versão do C++ padrão equivalente.", "advanced.settings": "Configurações Avançadas", "configuration.provider": "Provedor de configuração", - "configuration.provider.description": "A ID de uma extensão do VS Code que pode fornecer informações de configuração de IntelliSense para arquivos de origem. Por exemplo, use a ID de extensão do VS Code {0} para fornecer informações de configuração da extensão de Ferramentas CMake.", + "configuration.provider.description": "A ID de uma extensão do VS Code que pode fornecer informações de configuração de IntelliSense para arquivos de origem. Por exemplo, use a ID de extensão do VS Code {0} para fornecer informações de configuração da extensão de CMake Tools.", "windows.sdk.version": "Versão do SDK do Windows", "windows.sdk.version.description": "A versão do caminho de inclusão SDK do Windows a ser usada no Windows, por exemplo, {0}.", "mac.framework.path": "Caminho da estrutura do Mac", diff --git a/Extension/i18n/rus/ui/settings.html.i18n.json b/Extension/i18n/rus/ui/settings.html.i18n.json index 1c0d68c18..97f85b2ce 100644 --- a/Extension/i18n/rus/ui/settings.html.i18n.json +++ b/Extension/i18n/rus/ui/settings.html.i18n.json @@ -44,7 +44,7 @@ "cpp.standard.description": "Версия стандарта языка C++, используемая для IntelliSense. Примечание: стандарты GNU используются только для запроса определений GNU у установленного компилятора, а IntelliSense будет эмулировать эквивалентную версию стандарта C++.", "advanced.settings": "Дополнительные параметры", "configuration.provider": "Поставщик конфигурации", - "configuration.provider.description": "Идентификатор расширения VS Code, которое может предоставлять сведения о конфигурации IntelliSense для исходных файлов. Например, используйте идентификатор расширения VS Code {0}, чтобы предоставить сведения о конфигурации из расширения \"Средства CMake\".", + "configuration.provider.description": "Идентификатор расширения VS Code, которое может предоставлять сведения о конфигурации IntelliSense для исходных файлов. Например, используйте идентификатор расширения VS Code {0}, чтобы предоставить сведения о конфигурации из расширения CMake Tools.", "windows.sdk.version": "Версия Windows SDK", "windows.sdk.version.description": "Версия пути включения Windows SDK для использования в Windows, например {0}.", "mac.framework.path": "Путь к платформе Mac", diff --git a/Extension/i18n/trk/ui/settings.html.i18n.json b/Extension/i18n/trk/ui/settings.html.i18n.json index c340cd2b2..ef9983598 100644 --- a/Extension/i18n/trk/ui/settings.html.i18n.json +++ b/Extension/i18n/trk/ui/settings.html.i18n.json @@ -44,7 +44,7 @@ "cpp.standard.description": "IntelliSense için kullanılacak C++ dil standardı sürümü. Not: GNU standartları yalnızca GNU tanımlarını almak için ayarlanan derleyiciyi sorgulamak amacıyla kullanılır ve IntelliSense, eşdeğer C++ standart sürümüne öykünür.", "advanced.settings": "Gelişmiş Ayarlar", "configuration.provider": "Yapılandırma sağlayıcısı", - "configuration.provider.description": "Kaynak dosyalar için IntelliSense yapılandırma bilgilerini sağlayabilecek VS Code uzantısının kimliği. Örneğin, CMake Araçları uzantısındaki yapılandırma bilgilerini sağlamak için VS Code {0} uzantı kimliğini kullanın.", + "configuration.provider.description": "Kaynak dosyalar için IntelliSense yapılandırma bilgilerini sağlayabilecek VS Code uzantısının kimliği. Örneğin, Cmake Tools uzantısındaki yapılandırma bilgilerini sağlamak için VS Code {0} uzantı kimliğini kullanın.", "windows.sdk.version": "Windows SDK sürümü", "windows.sdk.version.description": "Windows üzerinde kullanılacak Windows SDK ekleme yolu sürümü, örneğin {0}.", "mac.framework.path": "Mac çerçevesi yolu", From d9af43b95ca2eb82f3341664be738cc631337ea2 Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Mon, 18 Aug 2025 13:32:03 -0700 Subject: [PATCH 3/3] Update changelog for 1.27.1. (#13855) --- Extension/CHANGELOG.md | 7 +++++++ Extension/package.json | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/Extension/CHANGELOG.md b/Extension/CHANGELOG.md index 03d6b2783..fb4f8fab7 100644 --- a/Extension/CHANGELOG.md +++ b/Extension/CHANGELOG.md @@ -1,5 +1,12 @@ # C/C++ for Visual Studio Code Changelog +## Version 1.27.1: August 19, 2025 +### Bug Fixes +* Fix the `__FILE_NAME__` macro being undefined with IntelliSense when using GCC/Clang. [#11164](https://github.com/microsoft/vscode-cpptools/issues/11164) +* Fix Doxygen generation overwriting a function signature. [#13839](https://github.com/microsoft/vscode-cpptools/issues/13839) +* Fix a crash on Windows 7, 8, and 10 (Server 2008, 2012, and 2016). [#13851](https://github.com/microsoft/vscode-cpptools/issues/13851) +* Fix "CMake Tools" translations. [PR #13854](https://github.com/microsoft/vscode-cpptools/pull/13854) + ## Version 1.27.0: August 7, 2025 ### Bug Fixes * Fix an IntelliSense crash in `add_cached_tokens_to_string`. [#11900](https://github.com/microsoft/vscode-cpptools/issues/11900) diff --git a/Extension/package.json b/Extension/package.json index 6b1c0812b..e865129a4 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.0-main", + "version": "1.27.1-main", "publisher": "ms-vscode", "icon": "LanguageCCPP_color_128x.png", "readme": "README.md", @@ -6625,4 +6625,4 @@ "postcss": "^8.4.31", "gulp-typescript/**/glob-parent": "^5.1.2" } -} +} \ No newline at end of file