vscode-cpptools
vscode-cpptools copied to clipboard
cpptools-srv allocating 8Gb of RAM right after starting
Bug type: Language Service
Describe the bug
- OS and Version: Windows 7 Pro x64
- VS Code Version: 1.66.0
- C/C++ Extension Version: 1.9.7
- Other extensions you installed (and if the issue persists after disabling them): PlatformIO (issue persists when disabled, however, platformio leaves its own c_cpp_properties.json)
- A clear and concise description of what the bug is, including information about the workspace (i.e. is the workspace a single project or multiple projects, size of the project, etc).
After I start VS Code and it loads previous PlatformIO project, it spawns cpptools-srv process. After 2-5 seconds, it allocates around 8 Gb of RAM and stays this way. If VS Code starts another cpptool-srv process, it jumps to these levels of allocation as well. Fortunately, it's virtual memory that is not mapped to actual RAM (actual RAM usage remains at sane levels), but it's still discomforting. A screenshot below shows both RAM values.
The workspace consists of one project. The project itself is a PlatformIO project that is an embedded Arduino firmware. If system sources are counted, total file count might be a hundred or so, but the project itself only has at most a dozen files. Any platformio project triggers this behavior, for ARM, AVR, ESP32 architectures and compiler toolchains.
On another machine (Win 10 x64) with the same project, cpptools-srv RAM allocation is only slightly larger than actual RAM usage (around 200-400 Mb, which seems reasonable and does not depend much on the number of files in project)
Expected behavior RAM commit levels should be similar to actual RAM usage (and it is on another machine).
Code sample and logs
- Any code triggers this behavior on my machine, even a minimal main.cpp
Configurations in `c_cpp_properties.json`
//
// !!! WARNING !!! AUTO-GENERATED FILE!
// PLEASE DO NOT MODIFY IT AND USE "platformio.ini":
// https://docs.platformio.org/page/projectconf/section_env_build.html#build-flags
//
{
"configurations": [
{
"name": "PlatformIO",
"includePath": [
"e:/Documents/PlatformIO/Projects/joysticktest/include",
"e:/Documents/PlatformIO/Projects/joysticktest/src",
"e:/Documents/PlatformIO/Projects/joysticktest/lib/ArduinoJoystickLibrary/src",
"C:/Users/positron/.platformio/packages/framework-arduino-avr/cores/arduino",
"C:/Users/positron/.platformio/packages/framework-arduino-avr/variants/micro",
"C:/Users/positron/.platformio/packages/framework-arduino-avr/libraries/EEPROM/src",
"C:/Users/positron/.platformio/packages/framework-arduino-avr/libraries/HID/src",
"C:/Users/positron/.platformio/packages/framework-arduino-avr/libraries/SPI/src",
"C:/Users/positron/.platformio/packages/framework-arduino-avr/libraries/SoftwareSerial/src",
"C:/Users/positron/.platformio/packages/framework-arduino-avr/libraries/Wire/src",
"C:/Users/positron/.platformio/packages/tool-unity",
""
],
"browse": {
"limitSymbolsToIncludedHeaders": true,
"path": [
"e:/Documents/PlatformIO/Projects/joysticktest/include",
"e:/Documents/PlatformIO/Projects/joysticktest/src",
"e:/Documents/PlatformIO/Projects/joysticktest/lib/ArduinoJoystickLibrary/src",
"C:/Users/positron/.platformio/packages/framework-arduino-avr/cores/arduino",
"C:/Users/positron/.platformio/packages/framework-arduino-avr/variants/micro",
"C:/Users/positron/.platformio/packages/framework-arduino-avr/libraries/EEPROM/src",
"C:/Users/positron/.platformio/packages/framework-arduino-avr/libraries/HID/src",
"C:/Users/positron/.platformio/packages/framework-arduino-avr/libraries/SPI/src",
"C:/Users/positron/.platformio/packages/framework-arduino-avr/libraries/SoftwareSerial/src",
"C:/Users/positron/.platformio/packages/framework-arduino-avr/libraries/Wire/src",
"C:/Users/positron/.platformio/packages/tool-unity",
""
]
},
"defines": [
"PLATFORMIO=50205",
"ARDUINO_AVR_MICRO",
"F_CPU=16000000L",
"ARDUINO_ARCH_AVR",
"ARDUINO=10808",
"USB_VID=0x2341",
"USB_PID=0x8037",
"USB_PRODUCT=\"Arduino Micro\"",
"USB_MANUFACTURER=\"Arduino\"",
"__AVR_ATmega32U4__",
""
],
"cStandard": "c11",
"cppStandard": "c++11",
"compilerPath": "C:/Users/positron/.platformio/packages/toolchain-atmelavr/bin/avr-gcc.exe",
"compilerArgs": [
"-mmcu=atmega32u4",
""
]
}
],
"version": 4
}
Logs from running `C/C++: Log Diagnostics` from the VS Code command palette
-------- Diagnostics - 06.04.2022, 01:55:53
Version: 1.9.7
Current Configuration:
{
"name": "PlatformIO",
"includePath": [
"e:/Documents/PlatformIO/Projects/joysticktest/include",
"e:/Documents/PlatformIO/Projects/joysticktest/src",
"e:/Documents/PlatformIO/Projects/joysticktest/lib/ArduinoJoystickLibrary/src",
"C:/Users/positron/.platformio/packages/framework-arduino-avr/cores/arduino",
"C:/Users/positron/.platformio/packages/framework-arduino-avr/variants/micro",
"C:/Users/positron/.platformio/packages/framework-arduino-avr/libraries/EEPROM/src",
"C:/Users/positron/.platformio/packages/framework-arduino-avr/libraries/HID/src",
"C:/Users/positron/.platformio/packages/framework-arduino-avr/libraries/SPI/src",
"C:/Users/positron/.platformio/packages/framework-arduino-avr/libraries/SoftwareSerial/src",
"C:/Users/positron/.platformio/packages/framework-arduino-avr/libraries/Wire/src",
"C:/Users/positron/.platformio/packages/tool-unity"
],
"browse": {
"limitSymbolsToIncludedHeaders": true,
"path": [
"e:/Documents/PlatformIO/Projects/joysticktest/include",
"e:/Documents/PlatformIO/Projects/joysticktest/src",
"e:/Documents/PlatformIO/Projects/joysticktest/lib/ArduinoJoystickLibrary/src",
"C:/Users/positron/.platformio/packages/framework-arduino-avr/cores/arduino",
"C:/Users/positron/.platformio/packages/framework-arduino-avr/variants/micro",
"C:/Users/positron/.platformio/packages/framework-arduino-avr/libraries/EEPROM/src",
"C:/Users/positron/.platformio/packages/framework-arduino-avr/libraries/HID/src",
"C:/Users/positron/.platformio/packages/framework-arduino-avr/libraries/SPI/src",
"C:/Users/positron/.platformio/packages/framework-arduino-avr/libraries/SoftwareSerial/src",
"C:/Users/positron/.platformio/packages/framework-arduino-avr/libraries/Wire/src",
"C:/Users/positron/.platformio/packages/tool-unity"
]
},
"defines": [
"PLATFORMIO=50205",
"ARDUINO_AVR_MICRO",
"F_CPU=16000000L",
"ARDUINO_ARCH_AVR",
"ARDUINO=10808",
"USB_VID=0x2341",
"USB_PID=0x8037",
"USB_PRODUCT=\"Arduino Micro\"",
"USB_MANUFACTURER=\"Arduino\"",
"__AVR_ATmega32U4__",
""
],
"cStandard": "c11",
"cppStandard": "c++11",
"compilerPath": "C:/Users/positron/.platformio/packages/toolchain-atmelavr/bin/avr-gcc.exe",
"compilerArgs": [
"-mmcu=atmega32u4",
""
],
"compilerPathIsExplicit": true,
"cStandardIsExplicit": true,
"cppStandardIsExplicit": true,
"intelliSenseModeIsExplicit": false,
"mergeConfigurations": false
}
Translation Unit Mappings:
[ C:\Users\positron\.platformio\packages\framework-arduino-avr\cores\arduino\USBCore.cpp ]:
C:\Users\positron\.platformio\packages\framework-arduino-avr\cores\arduino\USBCore.cpp
C:\Users\positron\.platformio\packages\framework-arduino-avr\cores\arduino\USBCore.h *
Translation Unit Configurations:
[ C:\Users\positron\.platformio\packages\framework-arduino-avr\cores\arduino\USBCore.cpp ]:
Process ID: 1452
Memory Usage: 25 MB
Compiler Path: C:/Users/positron/.platformio/packages/toolchain-atmelavr/bin/avr-gcc.exe
Includes:
E:\DOCUMENTS\PLATFORMIO\PROJECTS\JOYSTICKTEST\INCLUDE
E:\DOCUMENTS\PLATFORMIO\PROJECTS\JOYSTICKTEST\SRC
E:\DOCUMENTS\PLATFORMIO\PROJECTS\JOYSTICKTEST\LIB\ARDUINOJOYSTICKLIBRARY\SRC
C:\USERS\POSITRON\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINO-AVR\CORES\ARDUINO
C:\USERS\POSITRON\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINO-AVR\VARIANTS\MICRO
C:\USERS\POSITRON\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINO-AVR\LIBRARIES\EEPROM\SRC
C:\USERS\POSITRON\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINO-AVR\LIBRARIES\HID\SRC
C:\USERS\POSITRON\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINO-AVR\LIBRARIES\SPI\SRC
C:\USERS\POSITRON\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINO-AVR\LIBRARIES\SOFTWARESERIAL\SRC
C:\USERS\POSITRON\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINO-AVR\LIBRARIES\WIRE\SRC
C:\USERS\POSITRON\.PLATFORMIO\PACKAGES\TOOL-UNITY
C:\USERS\POSITRON\.PLATFORMIO\PACKAGES\TOOLCHAIN-ATMELAVR\LIB\GCC\AVR\7.3.0\INCLUDE
C:\USERS\POSITRON\.PLATFORMIO\PACKAGES\TOOLCHAIN-ATMELAVR\LIB\GCC\AVR\7.3.0\INCLUDE-FIXED
C:\USERS\POSITRON\.PLATFORMIO\PACKAGES\TOOLCHAIN-ATMELAVR\AVR\INCLUDE
Defines:
PLATFORMIO=50205
ARDUINO_AVR_MICRO
F_CPU=16000000L
ARDUINO_ARCH_AVR
ARDUINO=10808
USB_VID=0x2341
USB_PID=0x8037
USB_PRODUCT="Arduino Micro"
USB_MANUFACTURER="Arduino"
__AVR_ATmega32U4__
Standard Version: c++11
IntelliSense Mode: windows-gcc-x64
Other Flags:
--g++
--gnu_version=70300
Total Memory Usage: 25 MB
------- Workspace parsing diagnostics -------
Number of files discovered (not excluded): 448
Number of files parsed: 396
Logs from [the language server logging](https://code.visualstudio.com/docs/cpp/enable-logging-cpp#_enable-logging-for-the-language-server)
loggingLevel: Debug
cpptools/didChangeCppProperties
Code browsing service initialized
Attempting to get defaults from C++ compiler in "compilerPath" property: 'C:/Users/positron/.platformio/packages/toolchain-atmelavr/bin/avr-gcc.exe'
Querying compiler for default C++ language standard using command line: "C:/Users/positron/.platformio/packages/toolchain-atmelavr/bin/avr-gcc.exe" -x c++ -E -dM nul
Detected language standard version: gnu++14
Querying compiler for default C language standard using command line: "C:/Users/positron/.platformio/packages/toolchain-atmelavr/bin/avr-gcc.exe" -x c -E -dM nul
Detected language standard version: gnu11
Querying compiler's default target using command line: "C:/Users/positron/.platformio/packages/toolchain-atmelavr/bin/avr-gcc.exe" -dumpmachine
Compiler returned default target value: avr
Unhandled default compiler target value detected: avr
Compiler query command line: "C:/Users/positron/.platformio/packages/toolchain-atmelavr/bin/avr-gcc.exe" -mmcu=atmega32u4 -std=c++11 -Wp,-v -E -dM -x c++ -m64 nul
Compiler does not support 64-bit. Falling back to 32-bit intelliSenseMode.
Compiler query command line: "C:/Users/positron/.platformio/packages/toolchain-atmelavr/bin/avr-gcc.exe" -mmcu=atmega32u4 -std=c++11 -Wp,-v -E -dM -x c++ -m32 nul
Failed to query compiler. Falling back to no bitness.
Compiler query command line: "C:/Users/positron/.platformio/packages/toolchain-atmelavr/bin/avr-gcc.exe" -mmcu=atmega32u4 -std=c++11 -Wp,-v -E -dM -x c++ nul
Attempting to get defaults from C compiler in "compilerPath" property: 'C:/Users/positron/.platformio/packages/toolchain-atmelavr/bin/avr-gcc.exe'
Compiler query command line: "C:/Users/positron/.platformio/packages/toolchain-atmelavr/bin/avr-gcc.exe" -mmcu=atmega32u4 -std=c11 -Wp,-v -E -dM -x c -m64 nul
Compiler does not support 64-bit. Falling back to 32-bit intelliSenseMode.
Compiler query command line: "C:/Users/positron/.platformio/packages/toolchain-atmelavr/bin/avr-gcc.exe" -mmcu=atmega32u4 -std=c11 -Wp,-v -E -dM -x c -m32 nul
Failed to query compiler. Falling back to no bitness.
Compiler query command line: "C:/Users/positron/.platformio/packages/toolchain-atmelavr/bin/avr-gcc.exe" -mmcu=atmega32u4 -std=c11 -Wp,-v -E -dM -x c nul
Folder: C:/USERS/POSITRON/.PLATFORMIO/PACKAGES/TOOLCHAIN-ATMELAVR/AVR/INCLUDE/ will be indexed
Folder: C:/USERS/POSITRON/.PLATFORMIO/PACKAGES/TOOLCHAIN-ATMELAVR/LIB/GCC/AVR/7.3.0/INCLUDE/ will be indexed
Folder: C:/USERS/POSITRON/.PLATFORMIO/PACKAGES/TOOLCHAIN-ATMELAVR/LIB/GCC/AVR/7.3.0/INCLUDE-FIXED/ will be indexed
Folder: E:/DOCUMENTS/PLATFORMIO/PROJECTS/JOYSTICKTEST/INCLUDE/ will be indexed
Folder: E:/DOCUMENTS/PLATFORMIO/PROJECTS/JOYSTICKTEST/SRC/ will be indexed
Folder: E:/DOCUMENTS/PLATFORMIO/PROJECTS/JOYSTICKTEST/LIB/ARDUINOJOYSTICKLIBRARY/SRC/ will be indexed
Folder: C:/USERS/POSITRON/.PLATFORMIO/PACKAGES/FRAMEWORK-ARDUINO-AVR/CORES/ARDUINO/ will be indexed
Folder: C:/USERS/POSITRON/.PLATFORMIO/PACKAGES/FRAMEWORK-ARDUINO-AVR/VARIANTS/MICRO/ will be indexed
Folder: C:/USERS/POSITRON/.PLATFORMIO/PACKAGES/FRAMEWORK-ARDUINO-AVR/LIBRARIES/EEPROM/SRC/ will be indexed
Folder: C:/USERS/POSITRON/.PLATFORMIO/PACKAGES/FRAMEWORK-ARDUINO-AVR/LIBRARIES/HID/SRC/ will be indexed
Folder: C:/USERS/POSITRON/.PLATFORMIO/PACKAGES/FRAMEWORK-ARDUINO-AVR/LIBRARIES/SPI/SRC/ will be indexed
Folder: C:/USERS/POSITRON/.PLATFORMIO/PACKAGES/FRAMEWORK-ARDUINO-AVR/LIBRARIES/SOFTWARESERIAL/SRC/ will be indexed
Folder: C:/USERS/POSITRON/.PLATFORMIO/PACKAGES/FRAMEWORK-ARDUINO-AVR/LIBRARIES/WIRE/SRC/ will be indexed
Folder: C:/USERS/POSITRON/.PLATFORMIO/PACKAGES/TOOL-UNITY/ will be indexed
cpptools/didChangeSettings
IntelliSense Engine = Default.
Enhanced Colorization is enabled.
Error squiggles are enabled if all header dependencies are resolved.
Autocomplete is enabled.
Discovering files...
Processing folder (recursive): C:/USERS/POSITRON/.PLATFORMIO/PACKAGES/TOOLCHAIN-ATMELAVR/AVR/INCLUDE/
Processing folder (recursive): C:/USERS/POSITRON/.PLATFORMIO/PACKAGES/TOOLCHAIN-ATMELAVR/LIB/GCC/AVR/7.3.0/INCLUDE/
Processing folder (recursive): C:/USERS/POSITRON/.PLATFORMIO/PACKAGES/TOOLCHAIN-ATMELAVR/LIB/GCC/AVR/7.3.0/INCLUDE-FIXED/
Processing folder (recursive): E:/DOCUMENTS/PLATFORMIO/PROJECTS/JOYSTICKTEST/INCLUDE/
Processing folder (recursive): E:/DOCUMENTS/PLATFORMIO/PROJECTS/JOYSTICKTEST/SRC/
Processing folder (recursive): E:/DOCUMENTS/PLATFORMIO/PROJECTS/JOYSTICKTEST/LIB/ARDUINOJOYSTICKLIBRARY/SRC/
Processing folder (recursive): C:/USERS/POSITRON/.PLATFORMIO/PACKAGES/FRAMEWORK-ARDUINO-AVR/CORES/ARDUINO/
Processing folder (recursive): C:/USERS/POSITRON/.PLATFORMIO/PACKAGES/FRAMEWORK-ARDUINO-AVR/VARIANTS/MICRO/
Processing folder (recursive): C:/USERS/POSITRON/.PLATFORMIO/PACKAGES/FRAMEWORK-ARDUINO-AVR/LIBRARIES/EEPROM/SRC/
Processing folder (recursive): C:/USERS/POSITRON/.PLATFORMIO/PACKAGES/FRAMEWORK-ARDUINO-AVR/LIBRARIES/HID/SRC/
Processing folder (recursive): C:/USERS/POSITRON/.PLATFORMIO/PACKAGES/FRAMEWORK-ARDUINO-AVR/LIBRARIES/SPI/SRC/
Processing folder (recursive): C:/USERS/POSITRON/.PLATFORMIO/PACKAGES/FRAMEWORK-ARDUINO-AVR/LIBRARIES/SOFTWARESERIAL/SRC/
Processing folder (recursive): C:/USERS/POSITRON/.PLATFORMIO/PACKAGES/FRAMEWORK-ARDUINO-AVR/LIBRARIES/WIRE/SRC/
Processing folder (recursive): C:/USERS/POSITRON/.PLATFORMIO/PACKAGES/TOOL-UNITY/
Discovering files: 448 file(s) processed
0 file(s) removed from database
Done discovering files.
Populating include completion cache.
Parsing remaining files...
Parsing: 0 files(s) processed
Done parsing remaining files.
cpptools/didChangeCppProperties
cpptools/getCodeActions: E:\Documents\PlatformIO\Projects\joysticktest\src\main.cpp (id: 2)
textDocument/didOpen: E:\Documents\PlatformIO\Projects\joysticktest\src\main.cpp
cpptools/textEditorSelectionChange
cpptools/getDocumentSymbols: E:\Documents\PlatformIO\Projects\joysticktest\src\main.cpp (id: 3)
cpptools/textEditorSelectionChange
cpptools/getSemanticTokens: E:\Documents\PlatformIO\Projects\joysticktest\src\main.cpp (id: 4)
cpptools/activeDocumentChange: E:\Documents\PlatformIO\Projects\joysticktest\src\main.cpp
cpptools/getDocumentSymbols
sending compilation args for E:\Documents\PlatformIO\Projects\joysticktest\src\main.cpp
include: E:\DOCUMENTS\PLATFORMIO\PROJECTS\JOYSTICKTEST\INCLUDE
include: E:\DOCUMENTS\PLATFORMIO\PROJECTS\JOYSTICKTEST\SRC
include: E:\DOCUMENTS\PLATFORMIO\PROJECTS\JOYSTICKTEST\LIB\ARDUINOJOYSTICKLIBRARY\SRC
include: C:\USERS\POSITRON\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINO-AVR\CORES\ARDUINO
include: C:\USERS\POSITRON\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINO-AVR\VARIANTS\MICRO
include: C:\USERS\POSITRON\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINO-AVR\LIBRARIES\EEPROM\SRC
include: C:\USERS\POSITRON\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINO-AVR\LIBRARIES\HID\SRC
include: C:\USERS\POSITRON\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINO-AVR\LIBRARIES\SPI\SRC
include: C:\USERS\POSITRON\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINO-AVR\LIBRARIES\SOFTWARESERIAL\SRC
include: C:\USERS\POSITRON\.PLATFORMIO\PACKAGES\FRAMEWORK-ARDUINO-AVR\LIBRARIES\WIRE\SRC
include: C:\USERS\POSITRON\.PLATFORMIO\PACKAGES\TOOL-UNITY
include: C:\USERS\POSITRON\.PLATFORMIO\PACKAGES\TOOLCHAIN-ATMELAVR\LIB\GCC\AVR\7.3.0\INCLUDE
include: C:\USERS\POSITRON\.PLATFORMIO\PACKAGES\TOOLCHAIN-ATMELAVR\LIB\GCC\AVR\7.3.0\INCLUDE-FIXED
include: C:\USERS\POSITRON\.PLATFORMIO\PACKAGES\TOOLCHAIN-ATMELAVR\AVR\INCLUDE
define: __DBL_MIN_EXP__=(-125)
define: __HQ_FBIT__=15
define: __UINT_LEAST16_MAX__=0xffffU
define: __ATOMIC_ACQUIRE=2
define: __SFRACT_IBIT__=0
define: __FLT_MIN__=1.17549435e-38F
define: __GCC_IEC_559_COMPLEX=0
define: __BUILTIN_AVR_SLEEP=1
define: __BUILTIN_AVR_COUNTLSULLK=1
define: __BUILTIN_AVR_COUNTLSULLR=1
define: __UFRACT_MAX__=0XFFFFP-16UR
define: __UINT_LEAST8_TYPE__=unsigned char
define: __DQ_FBIT__=63
define: __INTMAX_C(c)=c ## LL
define: __ULFRACT_FBIT__=32
define: __SACCUM_EPSILON__=0x1P-7HK
define: __CHAR_BIT__=8
define: __USQ_IBIT__=0
define: __UINT8_MAX__=0xff
define: __ACCUM_FBIT__=15
define: __WINT_MAX__=0x7fff
define: __FLT32_MIN_EXP__=(-125)
define: __USFRACT_FBIT__=8
define: __ORDER_LITTLE_ENDIAN__=1234
define: __SIZE_MAX__=0xffffU
define: __WCHAR_MAX__=0x7fff
define: __LACCUM_IBIT__=32
define: __DBL_DENORM_MIN__=double(1.40129846e-45L)
define: __GCC_ATOMIC_CHAR_LOCK_FREE=1
define: __GCC_IEC_559=0
define: __FLT_EVAL_METHOD__=0
define: __BUILTIN_AVR_LLKBITS=1
define: __LLACCUM_MAX__=0X7FFFFFFFFFFFFFFFP-47LLK
define: __GCC_ATOMIC_CHAR32_T_LOCK_FREE=1
define: __BUILTIN_AVR_HKBITS=1
define: __BUILTIN_AVR_BITSLLK=1
define: __FRACT_FBIT__=15
define: __BUILTIN_AVR_BITSLLR=1
define: __UINT_FAST64_MAX__=0xffffffffffffffffULL
define: __SIG_ATOMIC_TYPE__=char
define: __BUILTIN_AVR_UHKBITS=1
define: __UACCUM_FBIT__=16
define: __DBL_MIN_10_EXP__=(-37)
define: __FINITE_MATH_ONLY__=0
define: __LFRACT_IBIT__=0
define: __GNUC_PATCHLEVEL__=0
define: __FLT32_HAS_DENORM__=1
define: __AVR_MEGA__=1
define: __LFRACT_MAX__=0X7FFFFFFFP-31LR
define: __UINT_FAST8_MAX__=0xff
define: __DEC64_MAX_EXP__=385
define: __INT8_C(c)=c
define: __INT_LEAST8_WIDTH__=8
define: __UINT_LEAST64_MAX__=0xffffffffffffffffULL
define: __SA_FBIT__=15
define: __SHRT_MAX__=0x7fff
define: __LDBL_MAX__=3.40282347e+38L
define: __FRACT_MAX__=0X7FFFP-15R
define: __UFRACT_FBIT__=16
define: __UFRACT_MIN__=0.0UR
define: __UINT_LEAST8_MAX__=0xff
define: __GCC_ATOMIC_BOOL_LOCK_FREE=1
define: __UINTMAX_TYPE__=long long unsigned int
define: __LLFRACT_EPSILON__=0x1P-63LLR
define: __BUILTIN_AVR_DELAY_CYCLES=1
define: __DEC32_EPSILON__=1E-6DF
define: __FLT_EVAL_METHOD_TS_18661_3__=0
define: __UINT32_MAX__=0xffffffffUL
define: __GXX_EXPERIMENTAL_CXX0X__=1
define: __ULFRACT_MAX__=0XFFFFFFFFP-32ULR
define: __TA_IBIT__=16
define: __LDBL_MAX_EXP__=128
define: __WINT_MIN__=(-__WINT_MAX__ - 1)
define: __INT_LEAST16_WIDTH__=16
define: __ULLFRACT_MIN__=0.0ULLR
define: __SCHAR_MAX__=0x7f
define: __WCHAR_MIN__=(-__WCHAR_MAX__ - 1)
define: __INT64_C(c)=c ## LL
define: __DBL_DIG__=6
define: __GCC_ATOMIC_POINTER_LOCK_FREE=1
define: __AVR_HAVE_SPH__=1
define: __LLACCUM_MIN__=(-0X1P15LLK-0X1P15LLK)
define: __BUILTIN_AVR_KBITS=1
define: __BUILTIN_AVR_ABSK=1
define: __BUILTIN_AVR_ABSR=1
define: __SIZEOF_INT__=2
define: __SIZEOF_POINTER__=2
define: __GCC_ATOMIC_CHAR16_T_LOCK_FREE=1
define: __USACCUM_IBIT__=8
define: __USER_LABEL_PREFIX__=
define: __STDC_HOSTED__=1
define: __LDBL_HAS_INFINITY__=1
define: __LFRACT_MIN__=(-0.5LR-0.5LR)
define: __HA_IBIT__=8
define: __FLT32_DIG__=6
define: __TQ_IBIT__=0
define: __FLT_EPSILON__=1.19209290e-7F
define: __GXX_WEAK__=1
define: __SHRT_WIDTH__=16
define: __USFRACT_IBIT__=0
define: __LDBL_MIN__=1.17549435e-38L
define: __FRACT_MIN__=(-0.5R-0.5R)
define: __AVR_SFR_OFFSET__=0x20
define: __DEC32_MAX__=9.999999E96DF
define: __DA_IBIT__=32
define: __INT32_MAX__=0x7fffffffL
define: __UQQ_FBIT__=8
define: __INT_WIDTH__=16
define: __SIZEOF_LONG__=4
define: __UACCUM_MAX__=0XFFFFFFFFP-16UK
define: __UINT16_C(c)=c ## U
define: __PTRDIFF_WIDTH__=16
define: __DECIMAL_DIG__=9
define: __LFRACT_EPSILON__=0x1P-31LR
define: __AVR_2_BYTE_PC__=1
define: __ULFRACT_MIN__=0.0ULR
define: __INTMAX_WIDTH__=64
define: __BUILTIN_AVR_ULLRBITS=1
define: __LDBL_HAS_QUIET_NAN__=1
define: __ULACCUM_IBIT__=32
define: __UACCUM_EPSILON__=0x1P-16UK
define: __BUILTIN_AVR_SEI=1
define: __GNUC__=7
define: __ULLACCUM_MAX__=0XFFFFFFFFFFFFFFFFP-48ULLK
define: __HQ_IBIT__=0
define: __BUILTIN_AVR_SWAP=1
define: __FLT_HAS_DENORM__=1
define: __SIZEOF_LONG_DOUBLE__=4
define: __BIGGEST_ALIGNMENT__=1
define: __STDC_UTF_16__=1
define: __UINT24_MAX__=16777215UL
define: __BUILTIN_AVR_NOP=1
define: __GNUC_STDC_INLINE__=1
define: __DQ_IBIT__=0
define: __FLT32_HAS_INFINITY__=1
define: __DBL_MAX__=double(3.40282347e+38L)
define: __ULFRACT_IBIT__=0
define: __INT_FAST32_MAX__=0x7fffffffL
define: __DBL_HAS_INFINITY__=1
define: __INT64_MAX__=0x7fffffffffffffffLL
define: __ACCUM_IBIT__=16
define: __DEC32_MIN_EXP__=(-94)
define: __BUILTIN_AVR_UKBITS=1
define: __INTPTR_WIDTH__=16
define: __BUILTIN_AVR_FMULSU=1
define: __LACCUM_MAX__=0X7FFFFFFFFFFFFFFFP-31LK
define: __INT_FAST16_TYPE__=int
define: __STRICT_ANSI__=1
define: __LDBL_HAS_DENORM__=1
define: __BUILTIN_AVR_BITSK=1
define: __BUILTIN_AVR_BITSR=1
define: __cplusplus=201103L
define: __DEC128_MAX__=9.999999999999999999999999999999999E6144DL
define: __INT_LEAST32_MAX__=0x7fffffffL
define: __USING_SJLJ_EXCEPTIONS__=1
define: __DEC32_MIN__=1E-95DF
define: __ACCUM_MAX__=0X7FFFFFFFP-15K
define: __DEPRECATED=1
define: __DBL_MAX_EXP__=128
define: __USACCUM_EPSILON__=0x1P-8UHK
define: __WCHAR_WIDTH__=16
define: __FLT32_MAX__=3.40282347e+38F32
define: __DEC128_EPSILON__=1E-33DL
define: __SFRACT_MAX__=0X7FP-7HR
define: __FRACT_IBIT__=0
define: __PTRDIFF_MAX__=0x7fff
define: __UACCUM_MIN__=0.0UK
define: __AVR_ENHANCED__=1
define: __UACCUM_IBIT__=16
define: __BUILTIN_AVR_NOPS=1
define: __BUILTIN_AVR_WDR=1
define: __FLT32_HAS_QUIET_NAN__=1
define: __GNUG__=7
define: __LONG_LONG_MAX__=0x7fffffffffffffffLL
define: __SIZEOF_SIZE_T__=2
define: __ULACCUM_MAX__=0XFFFFFFFFFFFFFFFFP-32ULK
define: __SIZEOF_WINT_T__=2
define: __LONG_LONG_WIDTH__=64
define: __FLT32_MAX_EXP__=128
define: __SA_IBIT__=16
define: __ULLACCUM_MIN__=0.0ULLK
define: __BUILTIN_AVR_ROUNDUHK=1
define: __BUILTIN_AVR_ROUNDUHR=1
define: __GXX_ABI_VERSION=1011
define: __INT24_MAX__=8388607L
define: __UTA_FBIT__=48
define: __FLT_MIN_EXP__=(-125)
define: __USFRACT_MAX__=0XFFP-8UHR
define: __UFRACT_IBIT__=0
define: __BUILTIN_AVR_ROUNDFX=1
define: __BUILTIN_AVR_ROUNDULK=1
define: __BUILTIN_AVR_ROUNDULR=1
define: __BUILTIN_AVR_COUNTLSLLK=1
define: __BUILTIN_AVR_COUNTLSLLR=1
define: __BUILTIN_AVR_ROUNDHK=1
define: __INT_FAST64_TYPE__=long long int
define: __BUILTIN_AVR_ROUNDHR=1
define: __DBL_MIN__=double(1.17549435e-38L)
define: __BUILTIN_AVR_COUNTLSK=1
define: __BUILTIN_AVR_ROUNDLK=1
define: __BUILTIN_AVR_COUNTLSR=1
define: __BUILTIN_AVR_ROUNDLR=1
define: __LACCUM_MIN__=(-0X1P31LK-0X1P31LK)
define: __ULLACCUM_FBIT__=48
define: __BUILTIN_AVR_LKBITS=1
define: __ULLFRACT_EPSILON__=0x1P-64ULLR
define: __DEC128_MIN__=1E-6143DL
define: __REGISTER_PREFIX__=
define: __UINT16_MAX__=0xffffU
define: __DBL_HAS_DENORM__=1
define: __BUILTIN_AVR_ULKBITS=1
define: __ACCUM_MIN__=(-0X1P15K-0X1P15K)
define: __AVR_ARCH__=5
define: __SQ_IBIT__=0
define: __FLT32_MIN__=1.17549435e-38F32
define: __UINT8_TYPE__=unsigned char
define: __BUILTIN_AVR_ROUNDUK=1
define: __BUILTIN_AVR_ROUNDUR=1
define: __UHA_FBIT__=8
define: __NO_INLINE__=1
define: __SFRACT_MIN__=(-0.5HR-0.5HR)
define: __UTQ_FBIT__=128
define: __FLT_MANT_DIG__=24
define: __LDBL_DECIMAL_DIG__=9
define: __VERSION__="7.3.0"
define: __UINT64_C(c)=c ## ULL
define: __ULLFRACT_FBIT__=64
define: __FRACT_EPSILON__=0x1P-15R
define: __ULACCUM_MIN__=0.0ULK
define: __UDA_FBIT__=32
define: __LLACCUM_EPSILON__=0x1P-47LLK
define: __GCC_ATOMIC_INT_LOCK_FREE=1
define: __FLT32_MANT_DIG__=24
define: __BUILTIN_AVR_BITSUHK=1
define: __BUILTIN_AVR_BITSUHR=1
define: __FLOAT_WORD_ORDER__=__ORDER_LITTLE_ENDIAN__
define: __USFRACT_MIN__=0.0UHR
define: __BUILTIN_AVR_BITSULK=1
define: __ULLACCUM_IBIT__=16
define: __BUILTIN_AVR_BITSULR=1
define: __UQQ_IBIT__=0
define: __BUILTIN_AVR_LLRBITS=1
define: __SCHAR_WIDTH__=8
define: __BUILTIN_AVR_BITSULLK=1
define: __BUILTIN_AVR_BITSULLR=1
define: __INT32_C(c)=c ## L
define: __DEC64_EPSILON__=1E-15DD
define: __ORDER_PDP_ENDIAN__=3412
define: __DEC128_MIN_EXP__=(-6142)
define: __UHQ_FBIT__=16
define: __LLACCUM_FBIT__=47
define: __FLT32_MAX_10_EXP__=38
define: __BUILTIN_AVR_ROUNDULLK=1
define: __BUILTIN_AVR_ROUNDULLR=1
define: __INT_FAST32_TYPE__=long int
define: __BUILTIN_AVR_HRBITS=1
define: __UINT_LEAST16_TYPE__=unsigned int
define: __BUILTIN_AVR_UHRBITS=1
define: __INT16_MAX__=0x7fff
define: __SIZE_TYPE__=unsigned int
define: __UINT64_MAX__=0xffffffffffffffffULL
define: __UDQ_FBIT__=64
define: __INT8_TYPE__=signed char
define: __AVR_ATmega32U4__=1
define: __ELF__=1
define: __ULFRACT_EPSILON__=0x1P-32ULR
define: __LLFRACT_FBIT__=63
define: __FLT_RADIX__=2
define: __INT_LEAST16_TYPE__=int
define: __BUILTIN_AVR_ABSFX=1
define: __LDBL_EPSILON__=1.19209290e-7L
define: __UINTMAX_C(c)=c ## ULL
define: __INT24_MIN__=(-__INT24_MAX__-1)
define: __SACCUM_MAX__=0X7FFFP-7HK
define: __BUILTIN_AVR_ABSHR=1
define: __SIG_ATOMIC_MAX__=0x7f
define: __GCC_ATOMIC_WCHAR_T_LOCK_FREE=1
define: __SIZEOF_PTRDIFF_T__=2
define: __AVR=1
define: __BUILTIN_AVR_ABSLK=1
define: __BUILTIN_AVR_ABSLR=1
define: __LACCUM_EPSILON__=0x1P-31LK
define: __DEC32_SUBNORMAL_MIN__=0.000001E-95DF
define: __INT_FAST16_MAX__=0x7fff
define: __UINT_FAST32_MAX__=0xffffffffUL
define: __UINT_LEAST64_TYPE__=long long unsigned int
define: __USACCUM_MAX__=0XFFFFP-8UHK
define: __SFRACT_EPSILON__=0x1P-7HR
define: __FLT_HAS_QUIET_NAN__=1
define: __FLT_MAX_10_EXP__=38
define: __LONG_MAX__=0x7fffffffL
define: __DEC128_SUBNORMAL_MIN__=0.000000000000000000000000000000001E-6143DL
define: __FLT_HAS_INFINITY__=1
define: __USA_FBIT__=16
define: __UINT_FAST16_TYPE__=unsigned int
define: __DEC64_MAX__=9.999999999999999E384DD
define: __INT_FAST32_WIDTH__=32
define: __BUILTIN_AVR_RBITS=1
define: __CHAR16_TYPE__=unsigned int
define: __PRAGMA_REDEFINE_EXTNAME=1
define: __AVR_HAVE_LPMX__=1
define: __SIZE_WIDTH__=16
define: __INT_LEAST16_MAX__=0x7fff
define: __DEC64_MANT_DIG__=16
define: __UINT_LEAST32_MAX__=0xffffffffUL
define: __SACCUM_FBIT__=7
define: __FLT32_DENORM_MIN__=1.40129846e-45F32
define: __GCC_ATOMIC_LONG_LOCK_FREE=1
define: __SIG_ATOMIC_WIDTH__=8
define: __INT_LEAST64_TYPE__=long long int
define: __INT16_TYPE__=int
define: __INT_LEAST8_TYPE__=signed char
define: __SQ_FBIT__=31
define: __DEC32_MAX_EXP__=97
define: __INT_FAST8_MAX__=0x7f
define: __INTPTR_MAX__=0x7fff
define: __QQ_FBIT__=7
define: __UTA_IBIT__=16
define: __FLT32_MIN_10_EXP__=(-37)
define: __LDBL_MANT_DIG__=24
define: __SFRACT_FBIT__=7
define: __SACCUM_MIN__=(-0X1P7HK-0X1P7HK)
define: __DBL_HAS_QUIET_NAN__=1
define: __SIG_ATOMIC_MIN__=(-__SIG_ATOMIC_MAX__ - 1)
define: __BUILTIN_AVR_FMULS=1
define: __INTPTR_TYPE__=int
define: __UINT16_TYPE__=unsigned int
define: __WCHAR_TYPE__=int
define: __SIZEOF_FLOAT__=4
define: __AVR__=1
define: __BUILTIN_AVR_INSERT_BITS=1
define: __AVR_HAVE_JMP_CALL__=1
define: __USQ_FBIT__=32
define: __UINTPTR_MAX__=0xffffU
define: __INT_FAST64_WIDTH__=64
define: __DEC64_MIN_EXP__=(-382)
define: __FLT32_DECIMAL_DIG__=9
define: __INT_FAST64_MAX__=0x7fffffffffffffffLL
define: __GCC_ATOMIC_TEST_AND_SET_TRUEVAL=1
define: __FLT_DIG__=6
define: __UINT_FAST64_TYPE__=long long unsigned int
define: __BUILTIN_AVR_BITSHK=1
define: __BUILTIN_AVR_BITSHR=1
define: __INT_MAX__=0x7fff
define: __LACCUM_FBIT__=31
define: __USACCUM_MIN__=0.0UHK
define: __UHA_IBIT__=8
define: __INT64_TYPE__=long long int
define: __BUILTIN_AVR_BITSLK=1
define: __BUILTIN_AVR_BITSLR=1
define: __FLT_MAX_EXP__=128
define: __AVR_HAVE_MUL__=1
define: __UTQ_IBIT__=0
define: __DBL_MANT_DIG__=24
define: __BUILTIN_AVR_ULLKBITS=1
define: __INT_LEAST64_MAX__=0x7fffffffffffffffLL
define: __AVR_HAVE_MOVW__=1
define: __DEC64_MIN__=1E-383DD
define: __WINT_TYPE__=int
define: __UINT_LEAST32_TYPE__=long unsigned int
define: __SIZEOF_SHORT__=2
define: __ULLFRACT_IBIT__=0
define: __LDBL_MIN_EXP__=(-125)
define: __UDA_IBIT__=32
define: __WINT_WIDTH__=16
define: __INT_LEAST8_MAX__=0x7f
define: __LFRACT_FBIT__=31
define: __LDBL_MAX_10_EXP__=38
define: __ATOMIC_RELAXED=0
define: __DBL_EPSILON__=double(1.19209290e-7L)
define: __BUILTIN_AVR_BITSUK=1
define: __BUILTIN_AVR_BITSUR=1
define: __UINT8_C(c)=c
define: __INT_LEAST32_TYPE__=long int
define: __BUILTIN_AVR_URBITS=1
define: __SIZEOF_WCHAR_T__=2
define: __LLFRACT_MAX__=0X7FFFFFFFFFFFFFFFP-63LLR
define: __TQ_FBIT__=127
define: __INT_FAST8_TYPE__=signed char
define: __ULLACCUM_EPSILON__=0x1P-48ULLK
define: __BUILTIN_AVR_ROUNDK=1
define: __BUILTIN_AVR_ROUNDR=1
define: __UHQ_IBIT__=0
define: __LLACCUM_IBIT__=16
define: __FLT32_EPSILON__=1.19209290e-7F32
define: __AVR_DEVICE_NAME__=atmega32u4
define: __DBL_DECIMAL_DIG__=9
define: __STDC_UTF_32__=1
define: __INT_FAST8_WIDTH__=8
define: __DEC_EVAL_METHOD__=2
define: __TA_FBIT__=47
define: __UDQ_IBIT__=0
define: __ORDER_BIG_ENDIAN__=4321
define: __WITH_AVRLIBC__=1
define: __UINT64_TYPE__=long long unsigned int
define: __ACCUM_EPSILON__=0x1P-15K
define: __UINT32_C(c)=c ## UL
define: __BUILTIN_AVR_COUNTLSUHK=1
define: __INTMAX_MAX__=0x7fffffffffffffffLL
define: __BUILTIN_AVR_COUNTLSUHR=1
define: __BYTE_ORDER__=__ORDER_LITTLE_ENDIAN__
define: __FLT_DENORM_MIN__=1.40129846e-45F
define: __LLFRACT_IBIT__=0
define: __INT8_MAX__=0x7f
define: __LONG_WIDTH__=32
define: __UINT_FAST32_TYPE__=long unsigned int
define: __CHAR32_TYPE__=long unsigned int
define: __BUILTIN_AVR_COUNTLSULK=1
define: __BUILTIN_AVR_COUNTLSULR=1
define: __FLT_MAX__=3.40282347e+38F
define: __USACCUM_FBIT__=8
define: __BUILTIN_AVR_COUNTLSFX=1
define: __INT32_TYPE__=long int
define: __SIZEOF_DOUBLE__=4
define: __FLT_MIN_10_EXP__=(-37)
define: __UFRACT_EPSILON__=0x1P-16UR
define: __INT_LEAST32_WIDTH__=32
define: __BUILTIN_AVR_COUNTLSHK=1
define: __BUILTIN_AVR_COUNTLSHR=1
define: __INTMAX_TYPE__=long long int
define: __BUILTIN_AVR_ABSLLK=1
define: __BUILTIN_AVR_ABSLLR=1
define: __DEC128_MAX_EXP__=6145
define: __AVR_HAVE_16BIT_SP__=1
define: __ATOMIC_CONSUME=1
define: __GNUC_MINOR__=3
define: __INT_FAST16_WIDTH__=16
define: __UINTMAX_MAX__=0xffffffffffffffffULL
define: __DEC32_MANT_DIG__=7
define: __HA_FBIT__=7
define: __BUILTIN_AVR_COUNTLSLK=1
define: __BUILTIN_AVR_COUNTLSLR=1
define: __BUILTIN_AVR_CLI=1
define: __DBL_MAX_10_EXP__=38
define: __LDBL_DENORM_MIN__=1.40129846e-45L
define: __INT16_C(c)=c
define: __STDC__=1
define: __PTRDIFF_TYPE__=int
define: __LLFRACT_MIN__=(-0.5LLR-0.5LLR)
define: __BUILTIN_AVR_LRBITS=1
define: __ATOMIC_SEQ_CST=5
define: __DA_FBIT__=31
define: __UINT32_TYPE__=long unsigned int
define: __BUILTIN_AVR_ROUNDLLK=1
define: __UINTPTR_TYPE__=unsigned int
define: __BUILTIN_AVR_ROUNDLLR=1
define: __USA_IBIT__=16
define: __BUILTIN_AVR_ULRBITS=1
define: __DEC64_SUBNORMAL_MIN__=0.000000000000001E-383DD
define: __DEC128_MANT_DIG__=34
define: __LDBL_MIN_10_EXP__=(-37)
define: __BUILTIN_AVR_COUNTLSUK=1
define: __BUILTIN_AVR_COUNTLSUR=1
define: __SIZEOF_LONG_LONG__=8
define: __ULACCUM_EPSILON__=0x1P-32ULK
define: __SACCUM_IBIT__=8
define: __GCC_ATOMIC_LLONG_LOCK_FREE=1
define: __LDBL_DIG__=6
define: __FLT_DECIMAL_DIG__=9
define: __UINT_FAST16_MAX__=0xffffU
define: __GCC_ATOMIC_SHORT_LOCK_FREE=1
define: __BUILTIN_AVR_ABSHK=1
define: __BUILTIN_AVR_FLASH_SEGMENT=1
define: __INT_LEAST64_WIDTH__=64
define: __ULLFRACT_MAX__=0XFFFFFFFFFFFFFFFFP-64ULLR
define: __UINT_FAST8_TYPE__=unsigned char
define: __USFRACT_EPSILON__=0x1P-8UHR
define: __ULACCUM_FBIT__=32
define: __QQ_IBIT__=0
define: __ATOMIC_ACQ_REL=4
define: __ATOMIC_RELEASE=3
define: __BUILTIN_AVR_FMUL=1
define: PLATFORMIO=50205
define: ARDUINO_AVR_MICRO
define: F_CPU=16000000L
define: ARDUINO_ARCH_AVR
define: ARDUINO=10808
define: USB_VID=0x2341
define: USB_PID=0x8037
define: USB_PRODUCT="Arduino Micro"
define: USB_MANUFACTURER="Arduino"
define: __AVR_ATmega32U4__
other: --g++
other: --gnu_version=70300
stdver: c++11
intelliSenseMode: windows-gcc-x64
Checking for syntax errors: E:\Documents\PlatformIO\Projects\joysticktest\src\main.cpp
Queueing IntelliSense update for files in translation unit of: E:\Documents\PlatformIO\Projects\joysticktest\src\main.cpp
cpptools/getCodeActions: E:\Documents\PlatformIO\Projects\joysticktest\src\main.cpp (id: 5)
cpptools/getFoldingRanges: E:\Documents\PlatformIO\Projects\joysticktest\src\main.cpp (id: 6)
cpptools/finishUpdateSquiggles
Error squiggle count: 0
Update IntelliSense time (sec): 0.945
cpptools/getFoldingRanges: E:\Documents\PlatformIO\Projects\joysticktest\src\main.cpp (id: 7)
Screenshots
Here is a screenshot of process explorer:

Additional context
This might just be an issue with how Windows 7 reports the memory usage. What is the "Commit Size" reported as? I'm guessing it could be due to memory mapping of a large address space for ipch files -- if you set C_Cpp.intelliSenseCacheSize to 0 does it stop reproing?
This might just be an issue with how Windows 7 reports the memory usage. What is the "Commit Size" reported as?
Sorry, how do I check this?
I'm guessing it could be due to memory mapping of a large address space for ipch files -- if you set C_Cpp.intelliSenseCacheSize to 0 does it stop reproing?
Yes, if that is set to 0, both committed size and working set size are 21-25 Mb. What do I loose if I keep cache size at 0?
I think in Task Manager you can right-click the columns of the Details tab and choose Select Columns to add the Commit Size column.
Setting the C_Cpp.intelliSenseCacheSize to 0 just stops creating generating the .ipch cache files for headers -- it's usually supposed to make IntelliSense updating faster, but there are cases where it could be slower and you may not notice any performance difference either way. The ipch cache files get memory mapped, i.e. a big chunk of virtural memory address space is allocated, but the memory should not be used/committed until the particular file/memory location is accessed, so it shouldn't impact the performance on your system or significantly reduce the memory available, etc.
"Commit size" in Task Manager looks like it's the same column called "Private bytes" in Process Explorer on the first screenshot. So it shows the same 8Gb for cpptools-srv when intelliSenseCacheSize is not 0.
That is not expected. I'll see if anyone on our team is able to repro that. I'm not sure if it's a bug with the Task Manager or some other difference in Win7.
Thanks! Let me know if any further information needed, I'll try to gather it on my machine.
I opened a few large source files on Windows 7 (VM) and the private bytes was in the 300 MB range. This doesn't appear to be a bug in Task Manager as I got the same result there.
Is there a project we can clone to aid in our investigation? There's something special about yours. Does it repro with any PlatformIO project?
Since we haven't reproed the issue yet on Win7, it could be a bug with their specific OS installation or Task Manager.
Hi. I've been able to successfully reproduce this on another Win7x64 box (inside VirtualBox) with fresh install of VS Code and PlatformIO. I've used this code: https://github.com/positron96/cnc3018-offline-controller but on my original machine the issue reproduces with any PlatformIO project. Also, both Windows Task Manager and Sysinternals Process Explorer are affected, so this is probably not a Task Manager bug (see on the screenshot).

I ran into this exact issue today too, after installing Espressif IDF extension and getting hello world project up and running. I am running swapless with 12GB of RAM, so upon allocation of an 8GB commit (as reported by resource monitor) I can actually get an out-of-(virtual)-memory system warning, followed shortly by VSCode window crash. So this is probably not a task manager issue.
VSCode v1.65.2, c/cpp v1.9.8, Win7x64.
The thing is, the issue is intermittent for me. So no debug logs yet.
I spent several hours playing around with building etc after I configured intellisense, and everything was running fine. However, after I happened to restart VSCode several times in a row in a rather quick manner (coincedentally, within a minute after a reboot), I was hit with the first out of memory warning. While I was investigating, VSCode eventually crashed. So I started it again, and again to no avail: allocation af an 8GB commit on startup persisted.
Then I waited for a couple minutes, launched VSCode again, and the 8GB commit was no more. I tried to reproduce the issue by rapidly restarting VSCode several times again, but no luck yet.
P.S. I've used VSCode with STM32 HAL libraries that constitute a codebase of roughly the same size as Espressif IDF. I've used PlatformIO too, occasionally. Never seen anything like this before. Maybe the issue is not related to the codebase size at all.
I also experience this issue and I concur that it is probably not dependent on the size of the codebase.
I used ProcessMonitor to look at all the files that cpptools-srv.exe accessed and it was only about 150 files in total, about 60 of those were code files (mostly .h), the rest were DLLs, config files, etc.
Total bytes read were about 600 kB.
Also, it takes only a second or two between process start and the allocation. Or more precisely during the startup of VS Code cpptools-srv.exe gets started and ended a couple of times and one of those processes survives and that one grabs 8 GB of memory about 2 seconds after it has started.
I can reproduce the issue pretty much every time I start VS Code with the C/C++ extension pack enabled, so if you want me to investigate something, let me know.
Edit:
Setting intelliSenseCacheSize to 0 seems to fix the issue.
@sean-mcmanus
a big chunk of virtural memory address space is allocated, but the memory should not be used/committed until the particular file/memory location is accessed, so it shouldn't impact the performance on your system or significantly reduce the memory available, etc.
Are you sure this applies to Windows? I'm not super strong on the subtleties of memory mapped files but I know for sure that for normal allocations overcommmit does not exist on Windows. On Linux (which has memory overcommit) it isn't a big deal to just allocate a lot of memory as long as you don't use it, but on Windows every allocation has to come out of physical or swap memory to be honored. As soon as that is used up by allocations, further allocations on the system will fail and many programs (Google Chrome is one example) will start crashing when they get failed allocations. It does not matter a bit whether or not the allocated memory was actually ever used.
@AndreKR What OS are you on? Win7? Yeah, I'd recommend setting intelliSenseCacheSize to 0 for anyone who hits this.
I don't think anyone on our team has witnessed the issue in which cpptools-srv.exe with the IntelliSenseCache on Windows creates a 2-8 GB commit of memory on Windows. Normally, it might allocate 4 GB of virtual memory space, but only 300 MB or so would be committed in to physical or swap memory.
I can reproduce it even without restarting VS Code. The actual number of intelliSenseCacheSize does not seem to matter:
https://user-images.githubusercontent.com/1188538/171841348-99450c94-d141-478c-a310-06bb9fdd445d.mp4
it might allocate 4 GB of virtual memory space, but only 300 MB or so would be committed in to physical or swap memory
I don't understand the distinction. On Windows (Linux is different) you can't "allocate" 4 GB without actually taking up 4 GB of memory. The moment you allocate it, it will be reserved for you and is unavailable for other applications, which then get failed allocations and (usually) crash.
@AndreKR See https://docs.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualalloc -- it says "MEM_RESERVE: Reserves a range of the process's virtual address space without allocating any actual physical storage in memory or in the paging file on disk..". Under normal circumstances, we don't see 4-8 GB of committed memory, only reserved address space. It's possible there has been some modification to your OS/kernel32.dll to trigger a different behavior, apps such as appverif.exe could have similar but different effects. We don't know what is causing this yet.
@AndreKR I just debugged it and I see us calling the VirtualAlloc with MEM_RESERVE with a large value, but small values when MEM_COMMIT is used. You may be able to use a system tool such as Process Monitor to see the VirtualAlloc calls made by the cpptools-srv process to see what flags/values are being used in your case. It seems as if there may be some "bug" in your OS that is causing MEM_RESERVE to be treated as MEM_COMMIT.
I am seeing exactly the same insane 8G "private bytes" for cpptools-srv.exe (and it's only one .c file loaded in VSCode)...

@al20878 If you could get more info via Process Monitor (not process explorer) that could help, in particular logging related to the VirtualAlloc call with the large request. Our current guess is it's some OS bug with Win7.
@al20878 The workaround should be to set C_Cpp.intelliSenseCacheSize to 0.
The workaround should be to set C_Cpp.intelliSenseCacheSize to 0.
I've seen that above in the thread, but that does not look like a proper "workaround". It just hides the problem. Besides, I guess dropping the cache altogether is not a good thing on itself -- I suppose it's there for a reason.
@al20878 The cache is not essential and in some cases may hurt performance anyway. The cache writes the compiled header code to a file and memory maps it, but that can cause additional disk read/writes, particularly if the disk is slower and/or if the header is changing a lot. You could compare the performance with the cache on/off to see if you see a performance difference. In most cases, the difference in performance probably wouldn't be noticeable.
i.e. the speed improvement of the caching would vary by the details of the hardware and OS used. If your OS is leading to excessive memory usage (for whatever reason), that would likely decrease the performance.
Thanks. Meanwhile, I tried to use procmon and the latest just refuses to run on Win 7, popping a message that it's unable to load a driver :-( Well, too bad.
BTW, dropping the cache size from (default) 5120 to 0 had the expected effect, as described earlier in this thread.
I'm experiencing this issue too. Annoyingly, VSCode seems to also want to open 4-6 servers, and thus all 64gb of my virtual memory is suddenly used up for seemingly no reason.
I'll admit, I will be very glad if this is what's been causing my computer's memory problems recently -- VSCode crashing with the below error at semi-regular intervals, and other entirely unrelated programs like Chrome and Discord getting killed by the OS randomly. I was worried that my computer's physical memory had been damaged somehow. And I know the computer is old, but this seemed excessively bad for it.

EDIT: Rolling all the way back to version 1.7.1 seems to make the cpptools-srv.exe processes actually behave themselves.
This is an issue on Ubuntu 22.04 too. Seeing 5+ cpptools-srv allocating huge amounts of memory.
@benj5378 I don't think it should be treated as a the same bug on Linux because Linux has memory overcommit, so in general allocating huge amounts of memory isn't a problem on Linux at all unless those memory pages are actually written to.
@AndreKR It's big enough that it makes my computer completely freeze for 5-10 minutes, before I can get to close VSCode.
Since I wrote my last message, it actually happened. I had just 3 cpp files open and 8gb ram + 2 gb swap has been eaten completely up. This time, it didn't just freeze, Ubuntu crashed!
And in any case, would this be a seperate bug (if even considered a bug)?
@benj5378 Yes, your issue is different. The original issue is Win 7 specific and repros with any source file and is related to memory mapping with virtual alloc. Your issue may just be high memory usage for certain TU files -- the issue https://github.com/microsoft/vscode-cpptools/issues/9798 is tracking a similar issue in regards to the C_Cpp.maxMemory-related settings potentially not working (you could set those to non-default values and that could be a potential workaround).
I am seing similar issues. Closed down all browsers and all VSC instances. This code was still running hammering my CPU and eating ram. This is on Ubuntu 22.04 with 12th gen Intel. 64GB ram.
@HamAndEggs Which process is using CPU/memory? If for some reason our cpptools process doesn't exit right after VS Code shutdown, it should exit after 5 minutes if VS Code is closed, so you might just need to wait longer. The original issue is an issue with Win7 and virtual memory so your Linux issue is different.