Skip to content

Commit 249f93e

Browse files
Merge branch 'main' into dev/garretts/instrumentation
2 parents fe6a369 + 72e28d9 commit 249f93e

File tree

3 files changed

+24
-6
lines changed

3 files changed

+24
-6
lines changed

Extension/CHANGELOG.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
# C/C++ for Visual Studio Code Changelog
22

3-
## Version 1.24.0: Febrary 11, 2025
3+
## Version 1.24.1: February 13, 2025
4+
### Bug Fixes
5+
* Fix random IntelliSense process crashes on Linux/macOS when `C_Cpp.intelliSenseCacheSize` is > 0. [#12668](https://github.com/microsoft/vscode-cpptools/issues/12668)
6+
* Fix a crash when processing Copilot snippets.
7+
* Fix a crash when using Copilot hover.
8+
9+
## Version 1.24.0: February 11, 2025
410
### New Feature
511
* Add experimental support for Copilot descriptions in hover tooltips, controlled by the `C_Cpp.copilotHover` setting. This feature is currently off by default and may be subject to A/B experimentation. To opt-out of Copilot Hover experiments, set `C_Cpp.copilotHover` to `disabled`.
612

Extension/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "cpptools",
33
"displayName": "C/C++",
44
"description": "C/C++ IntelliSense, debugging, and code browsing.",
5-
"version": "1.24.0-main",
5+
"version": "1.24.1-main",
66
"publisher": "ms-vscode",
77
"icon": "LanguageCCPP_color_128x.png",
88
"readme": "README.md",

Extension/src/LanguageServer/extension.ts

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1224,7 +1224,7 @@ async function handleCrashFileRead(crashDirectory: string, crashFile: string, cr
12241224
if (ret?.output === funcStr) {
12251225
ret = await util.spawnChildProcess(filtPath, [funcStr], undefined, true).catch(logAndReturn.undefined);
12261226
}
1227-
if (ret !== undefined && ret.succeeded) {
1227+
if (ret !== undefined && ret.succeeded && !ret.output.startsWith("Could not open input file")) {
12281228
funcStr = ret.output;
12291229
funcStr = funcStr.replace(/std::(?:__1|__cxx11)/g, "std"); // simplify std namespaces.
12301230
funcStr = funcStr.replace(/std::basic_/g, "std::");
@@ -1235,7 +1235,11 @@ async function handleCrashFileRead(crashDirectory: string, crashFile: string, cr
12351235
}
12361236
}
12371237
if (funcStr.includes("/")) {
1238-
funcStr = "<func>";
1238+
funcStr = "<funcForwardSlash>";
1239+
} else if (funcStr.includes("\\")) {
1240+
funcStr = "<funcBackSlash>";
1241+
} else if (funcStr.includes("@")) {
1242+
funcStr = "<funcAt>";
12391243
} else if (!validFrameFound && (funcStr.startsWith("crash_handler(") || funcStr.startsWith("_sigtramp"))) {
12401244
continue; // Skip these on early frames.
12411245
}
@@ -1246,8 +1250,10 @@ async function handleCrashFileRead(crashDirectory: string, crashFile: string, cr
12461250
const offsetPos2: number = offsetPos + offsetStr.length;
12471251
if (isMac) {
12481252
const pendingOffset: string = line.substring(offsetPos2);
1249-
if (!pendingOffset.includes("/")) {
1253+
if (!pendingOffset.includes("/") && !pendingOffset.includes("\\") && !pendingOffset.includes("@")) {
12501254
crashCallStack += pendingOffset;
1255+
} else {
1256+
crashCallStack += "<offsetUnexpectedCharacter>";
12511257
}
12521258
const startAddressPos: number = line.indexOf("0x");
12531259
if (startAddressPos === -1 || startAddressPos >= startPos) {
@@ -1263,8 +1269,10 @@ async function handleCrashFileRead(crashDirectory: string, crashFile: string, cr
12631269
continue; // unexpected
12641270
}
12651271
const pendingOffset: string = line.substring(offsetPos2, endPos);
1266-
if (!pendingOffset.includes("/")) {
1272+
if (!pendingOffset.includes("/") && !pendingOffset.includes("\\") && !pendingOffset.includes("@")) {
12671273
crashCallStack += pendingOffset;
1274+
} else {
1275+
crashCallStack += "<offsetUnexpectedCharacter>";
12681276
}
12691277
}
12701278
}
@@ -1283,6 +1291,10 @@ async function handleCrashFileRead(crashDirectory: string, crashFile: string, cr
12831291
data = data.substring(0, 8191) + "…";
12841292
}
12851293

1294+
if (addressData.includes("/") || addressData.includes("\\") || addressData.includes("@")) {
1295+
addressData = "<addressDataUnexpectedCharacter>";
1296+
}
1297+
12861298
logCppCrashTelemetry(data, addressData);
12871299

12881300
await util.deleteFile(path.resolve(crashDirectory, crashFile)).catch(logAndReturn.undefined);

0 commit comments

Comments
 (0)