Type: LanguageService
VSCode auto updated from 0.29.0 to 0.30.0-insiders3 and all Intellisense is now broken (on all .c files). It just says "No suggestions". It cannot find the definition of any variables, functions, etc. Verified that compiler path and include paths are set appropriately for cross compiling.
Going back to 0.29.0 fixes the problem (although it will then immediately try to auto-update to 0.30.0, so I have had to disable auto-update for all my extensions as a result until this problem is fixed).
Project is the linux kernel - just .c and .h files.
Describe the bug
Steps to reproduce
No steps needed - Intellisense simply broke as soon as it updated and I reloaded the editor.
My c_cpp_properties.json:
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [
"CONFIG_GPIOLIB=y",
"CONFIG_OF_GPIO=y"
],
"compilerPath": "/usr/local/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc",
"cStandard": "gnu11",
"cppStandard": "gnu++14",
"intelliSenseMode": "gcc-arm"
}
],
"version": 4
}
Expected behavior
Intellisense to pop up with code completion.
Finished installing dependencies cpptools/didChangeCppProperties
Logs
Insert logs here.
terminating child process: 31816
terminating child process: 31817
Attempting to get defaults from compiler in "compilerPath" property: '/usr/local/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc'
terminating child process: 31818
Compiler probe command line: /usr/local/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc -std=gnu11 -Wp,-v -E -dD -x c /dev/null
terminating child process: 31820
Code browsing service initialized
Attempting to get defaults from compiler in "compilerPath" property: '/usr/local/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc'
terminating child process: 31822
Compiler probe command line: /usr/local/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc -std=gnu++14 -Wp,-v -E -dD -x c++ /dev/null
terminating child process: 31825
Folder: /usr/local/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/lib/gcc/arm-linux-gnueabihf/7.5.0/include/ will be indexed
Folder: /usr/local/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/lib/gcc/arm-linux-gnueabihf/7.5.0/include-fixed/ will be indexed
Folder: /usr/local/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/include/ will be indexed
Folder: /usr/local/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/include/ will be indexed
Folder: /home/devuser/Code/raspberry-pi/linux/ will be indexed
Populate include completion cache.
Discovering files...
Processing folder (recursive): /usr/local/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/lib/gcc/arm-linux-gnueabihf/7.5.0/include/
Processing folder (recursive): /usr/local/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/lib/gcc/arm-linux-gnueabihf/7.5.0/include-fixed/
Processing folder (recursive): /usr/local/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/include/
Processing folder (recursive): /usr/local/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/include/
cpptools/getSemanticTokens: file:///home/devuser/Code/raspberry-pi/linux/drivers/misc/rbsw-relay/rb-relay-52pi-ep0099.c (id: 2)
Processing folder (recursive): /home/devuser/Code/raspberry-pi/linux/
Discovering files: 94090 file(s) processed
0 file(s) removed from database
Done discovering files.
Parsing remaining files...
Parsing: 0 files(s) processed
Done parsing remaining files.
cpptools/getCodeActions: file:///home/devuser/Code/raspberry-pi/linux/drivers/misc/rbsw-relay/rb-relay-52pi-ep0099.c (id: 3)
textDocument/didOpen: file:///home/devuser/Code/raspberry-pi/linux/drivers/misc/rbsw-relay/rb-relay-52pi-ep0099.c
cpptools/activeDocumentChange: file:///home/devuser/Code/raspberry-pi/linux/drivers/misc/rbsw-relay/rb-relay-52pi-ep0099.c
cpptools/textEditorSelectionChange
cpptools/getDocumentSymbols: file:///home/devuser/Code/raspberry-pi/linux/drivers/misc/rbsw-relay/rb-relay-52pi-ep0099.c (id: 4)
cpptools/getDocumentSymbols
cpptools/textEditorSelectionChange
cpptools/getFoldingRanges: file:///home/devuser/Code/raspberry-pi/linux/drivers/misc/rbsw-relay/rb-relay-52pi-ep0099.c (id: 5)
cpptools/getCodeActions: file:///home/devuser/Code/raspberry-pi/linux/drivers/misc/rbsw-relay/rb-relay-52pi-ep0099.c (id: 6)
textDocument/hover: file:///home/devuser/Code/raspberry-pi/linux/drivers/misc/rbsw-relay/rb-relay-52pi-ep0099.c (id: 7)
IntelliSense client not available, using Tag Parser for go to definition.
IntelliSense client not available, using Tag Parser for quick info.
using Tag Parser for quick info
textDocument/hover: file:///home/devuser/Code/raspberry-pi/linux/drivers/misc/rbsw-relay/rb-relay-52pi-ep0099.c (id: 8)
IntelliSense client not available, using Tag Parser for go to definition.
IntelliSense client not available, using Tag Parser for quick info.
using Tag Parser for quick info
idle loop: reparsing the active document
Checking for syntax errors: file:///home/devuser/Code/raspberry-pi/linux/drivers/misc/rbsw-relay/rb-relay-52pi-ep0099.c
sending compilation args for /home/devuser/Code/raspberry-pi/linux/drivers/misc/rbsw-relay/rb-relay-52pi-ep0099.c
include: /usr/local/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/lib/gcc/arm-linux-gnueabihf/7.5.0/include
include: /usr/local/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/lib/gcc/arm-linux-gnueabihf/7.5.0/include-fixed
include: /usr/local/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/include
include: /usr/local/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/include
include: /home/devuser/Code/raspberry-pi/linux/include
include: /home/devuser/Code/raspberry-pi/linux/arch/alpha/include
include: /home/devuser/Code/raspberry-pi/linux/arch/arc/include
include: /home/devuser/Code/raspberry-pi/linux/arch/arm/include
include: /home/devuser/Code/raspberry-pi/linux/arch/x86/include
include: /home/devuser/Code/raspberry-pi/linux/arch/s390/include
include: /home/devuser/Code/raspberry-pi/linux/arch/hexagon/include
include: /home/devuser/Code/raspberry-pi/linux/arch/arm/mach-ebsa110/include
define: __STDC__=1
define: __STDC_VERSION__=201112L
define: __STDC_UTF_16__=1
define: __STDC_UTF_32__=1
define: __STDC_HOSTED__=1
define: __GNUC__=7
define: __GNUC_MINOR__=5
define: __GNUC_PATCHLEVEL__=0
define: __VERSION__="7.5.0"
define: __LINARO_RELEASE__=201912
define: __LINARO_SPIN__=0
define: __ATOMIC_RELAXED=0
define: __ATOMIC_SEQ_CST=5
define: __ATOMIC_ACQUIRE=2
define: __ATOMIC_RELEASE=3
define: __ATOMIC_ACQ_REL=4
define: __ATOMIC_CONSUME=1
define: __FINITE_MATH_ONLY__=0
define: __SIZEOF_INT__=4
define: __SIZEOF_LONG__=4
define: __SIZEOF_LONG_LONG__=8
define: __SIZEOF_SHORT__=2
define: __SIZEOF_FLOAT__=4
define: __SIZEOF_DOUBLE__=8
define: __SIZEOF_LONG_DOUBLE__=8
define: __SIZEOF_SIZE_T__=4
define: __CHAR_BIT__=8
define: __BIGGEST_ALIGNMENT__=8
define: __ORDER_LITTLE_ENDIAN__=1234
define: __ORDER_BIG_ENDIAN__=4321
define: __ORDER_PDP_ENDIAN__=3412
define: __BYTE_ORDER__=__ORDER_LITTLE_ENDIAN__
define: __FLOAT_WORD_ORDER__=__ORDER_LITTLE_ENDIAN__
define: __SIZEOF_POINTER__=4
define: __SIZE_TYPE__=unsigned int
define: __PTRDIFF_TYPE__=int
define: __WCHAR_TYPE__=unsigned int
define: __WINT_TYPE__=unsigned int
define: __INTMAX_TYPE__=long long int
define: __UINTMAX_TYPE__=long long unsigned int
define: __CHAR16_TYPE__=short unsigned int
define: __CHAR32_TYPE__=unsigned int
define: __SIG_ATOMIC_TYPE__=int
define: __INT8_TYPE__=signed char
define: __INT16_TYPE__=short int
define: __INT32_TYPE__=int
define: __INT64_TYPE__=long long int
define: __UINT8_TYPE__=unsigned char
define: __UINT16_TYPE__=short unsigned int
define: __UINT32_TYPE__=unsigned int
define: __UINT64_TYPE__=long long unsigned int
define: __INT_LEAST8_TYPE__=signed char
define: __INT_LEAST16_TYPE__=short int
define: __INT_LEAST32_TYPE__=int
define: __INT_LEAST64_TYPE__=long long int
define: __UINT_LEAST8_TYPE__=unsigned char
define: __UINT_LEAST16_TYPE__=short unsigned int
define: __UINT_LEAST32_TYPE__=unsigned int
define: __UINT_LEAST64_TYPE__=long long unsigned int
define: __INT_FAST8_TYPE__=signed char
define: __INT_FAST16_TYPE__=int
define: __INT_FAST32_TYPE__=int
define: __INT_FAST64_TYPE__=long long int
define: __UINT_FAST8_TYPE__=unsigned char
define: __UINT_FAST16_TYPE__=unsigned int
define: __UINT_FAST32_TYPE__=unsigned int
define: __UINT_FAST64_TYPE__=long long unsigned int
define: __INTPTR_TYPE__=int
define: __UINTPTR_TYPE__=unsigned int
define: __GXX_ABI_VERSION=1011
define: __SCHAR_MAX__=0x7f
define: __SHRT_MAX__=0x7fff
define: __INT_MAX__=0x7fffffff
define: __LONG_MAX__=0x7fffffffL
define: __LONG_LONG_MAX__=0x7fffffffffffffffLL
define: __WCHAR_MAX__=0xffffffffU
define: __WCHAR_MIN__=0U
define: __WINT_MAX__=0xffffffffU
define: __WINT_MIN__=0U
define: __PTRDIFF_MAX__=0x7fffffff
define: __SIZE_MAX__=0xffffffffU
define: __SCHAR_WIDTH__=8
define: __SHRT_WIDTH__=16
define: __INT_WIDTH__=32
define: __LONG_WIDTH__=32
define: __LONG_LONG_WIDTH__=64
define: __WCHAR_WIDTH__=32
define: __WINT_WIDTH__=32
define: __PTRDIFF_WIDTH__=32
define: __SIZE_WIDTH__=32
define: __INTMAX_MAX__=0x7fffffffffffffffLL
define: __INTMAX_C(c)=c ## LL
define: __UINTMAX_MAX__=0xffffffffffffffffULL
define: __UINTMAX_C(c)=c ## ULL
define: __INTMAX_WIDTH__=64
define: __SIG_ATOMIC_MAX__=0x7fffffff
define: __SIG_ATOMIC_MIN__=(-__SIG_ATOMIC_MAX__ - 1)
define: __SIG_ATOMIC_WIDTH__=32
define: __INT8_MAX__=0x7f
define: __INT16_MAX__=0x7fff
define: __INT32_MAX__=0x7fffffff
define: __INT64_MAX__=0x7fffffffffffffffLL
define: __UINT8_MAX__=0xff
define: __UINT16_MAX__=0xffff
define: __UINT32_MAX__=0xffffffffU
define: __UINT64_MAX__=0xffffffffffffffffULL
define: __INT_LEAST8_MAX__=0x7f
define: __INT8_C(c)=c
define: __INT_LEAST8_WIDTH__=8
define: __INT_LEAST16_MAX__=0x7fff
define: __INT16_C(c)=c
define: __INT_LEAST16_WIDTH__=16
define: __INT_LEAST32_MAX__=0x7fffffff
define: __INT32_C(c)=c
define: __INT_LEAST32_WIDTH__=32
define: __INT_LEAST64_MAX__=0x7fffffffffffffffLL
define: __INT64_C(c)=c ## LL
define: __INT_LEAST64_WIDTH__=64
define: __UINT_LEAST8_MAX__=0xff
define: __UINT8_C(c)=c
define: __UINT_LEAST16_MAX__=0xffff
define: __UINT16_C(c)=c
define: __UINT_LEAST32_MAX__=0xffffffffU
define: __UINT32_C(c)=c ## U
define: __UINT_LEAST64_MAX__=0xffffffffffffffffULL
define: __UINT64_C(c)=c ## ULL
define: __INT_FAST8_MAX__=0x7f
define: __INT_FAST8_WIDTH__=8
define: __INT_FAST16_MAX__=0x7fffffff
define: __INT_FAST16_WIDTH__=32
define: __INT_FAST32_MAX__=0x7fffffff
define: __INT_FAST32_WIDTH__=32
define: __INT_FAST64_MAX__=0x7fffffffffffffffLL
define: __INT_FAST64_WIDTH__=64
define: __UINT_FAST8_MAX__=0xff
define: __UINT_FAST16_MAX__=0xffffffffU
define: __UINT_FAST32_MAX__=0xffffffffU
define: __UINT_FAST64_MAX__=0xffffffffffffffffULL
define: __INTPTR_MAX__=0x7fffffff
define: __INTPTR_WIDTH__=32
define: __UINTPTR_MAX__=0xffffffffU
define: __GCC_IEC_559=2
define: __GCC_IEC_559_COMPLEX=2
define: __FLT_EVAL_METHOD__=0
define: __FLT_EVAL_METHOD_TS_18661_3__=0
define: __DEC_EVAL_METHOD__=2
define: __FLT_RADIX__=2
define: __FLT_MANT_DIG__=24
define: __FLT_DIG__=6
define: __FLT_MIN_EXP__=(-125)
define: __FLT_MIN_10_EXP__=(-37)
define: __FLT_MAX_EXP__=128
define: __FLT_MAX_10_EXP__=38
define: __FLT_DECIMAL_DIG__=9
define: __FLT_MAX__=3.4028234663852886e+38F
define: __FLT_MIN__=1.1754943508222875e-38F
define: __FLT_EPSILON__=1.1920928955078125e-7F
define: __FLT_DENORM_MIN__=1.4012984643248171e-45F
define: __FLT_HAS_DENORM__=1
define: __FLT_HAS_INFINITY__=1
define: __FLT_HAS_QUIET_NAN__=1
define: __DBL_MANT_DIG__=53
define: __DBL_DIG__=15
define: __DBL_MIN_EXP__=(-1021)
define: __DBL_MIN_10_EXP__=(-307)
define: __DBL_MAX_EXP__=1024
define: __DBL_MAX_10_EXP__=308
define: __DBL_DECIMAL_DIG__=17
define: __DBL_MAX__=((double)1.7976931348623157e+308L)
define: __DBL_MIN__=((double)2.2250738585072014e-308L)
define: __DBL_EPSILON__=((double)2.2204460492503131e-16L)
define: __DBL_DENORM_MIN__=((double)4.9406564584124654e-324L)
define: __DBL_HAS_DENORM__=1
define: __DBL_HAS_INFINITY__=1
define: __DBL_HAS_QUIET_NAN__=1
define: __LDBL_MANT_DIG__=53
define: __LDBL_DIG__=15
define: __LDBL_MIN_EXP__=(-1021)
define: __LDBL_MIN_10_EXP__=(-307)
define: __LDBL_MAX_EXP__=1024
define: __LDBL_MAX_10_EXP__=308
define: __DECIMAL_DIG__=17
define: __LDBL_DECIMAL_DIG__=17
define: __LDBL_MAX__=1.7976931348623157e+308L
define: __LDBL_MIN__=2.2250738585072014e-308L
define: __LDBL_EPSILON__=2.2204460492503131e-16L
define: __LDBL_DENORM_MIN__=4.9406564584124654e-324L
define: __LDBL_HAS_DENORM__=1
define: __LDBL_HAS_INFINITY__=1
define: __LDBL_HAS_QUIET_NAN__=1
define: __FLT32_MANT_DIG__=24
define: __FLT32_DIG__=6
define: __FLT32_MIN_EXP__=(-125)
define: __FLT32_MIN_10_EXP__=(-37)
define: __FLT32_MAX_EXP__=128
define: __FLT32_MAX_10_EXP__=38
define: __FLT32_DECIMAL_DIG__=9
define: __FLT32_MAX__=3.4028234663852886e+38F32
define: __FLT32_MIN__=1.1754943508222875e-38F32
define: __FLT32_EPSILON__=1.1920928955078125e-7F32
define: __FLT32_DENORM_MIN__=1.4012984643248171e-45F32
define: __FLT32_HAS_DENORM__=1
define: __FLT32_HAS_INFINITY__=1
define: __FLT32_HAS_QUIET_NAN__=1
define: __FLT64_MANT_DIG__=53
define: __FLT64_DIG__=15
define: __FLT64_MIN_EXP__=(-1021)
define: __FLT64_MIN_10_EXP__=(-307)
define: __FLT64_MAX_EXP__=1024
define: __FLT64_MAX_10_EXP__=308
define: __FLT64_DECIMAL_DIG__=17
define: __FLT64_MAX__=1.7976931348623157e+308F64
define: __FLT64_MIN__=2.2250738585072014e-308F64
define: __FLT64_EPSILON__=2.2204460492503131e-16F64
define: __FLT64_DENORM_MIN__=4.9406564584124654e-324F64
define: __FLT64_HAS_DENORM__=1
define: __FLT64_HAS_INFINITY__=1
define: __FLT64_HAS_QUIET_NAN__=1
define: __FLT32X_MANT_DIG__=53
define: __FLT32X_DIG__=15
define: __FLT32X_MIN_EXP__=(-1021)
define: __FLT32X_MIN_10_EXP__=(-307)
define: __FLT32X_MAX_EXP__=1024
define: __FLT32X_MAX_10_EXP__=308
define: __FLT32X_DECIMAL_DIG__=17
define: __FLT32X_MAX__=1.7976931348623157e+308F32x
define: __FLT32X_MIN__=2.2250738585072014e-308F32x
define: __FLT32X_EPSILON__=2.2204460492503131e-16F32x
define: __FLT32X_DENORM_MIN__=4.9406564584124654e-324F32x
define: __FLT32X_HAS_DENORM__=1
define: __FLT32X_HAS_INFINITY__=1
define: __FLT32X_HAS_QUIET_NAN__=1
define: __DEC32_MANT_DIG__=7
define: __DEC32_MIN_EXP__=(-94)
define: __DEC32_MAX_EXP__=97
define: __DEC32_MIN__=1E-95DF
define: __DEC32_MAX__=9.999999E96DF
define: __DEC32_EPSILON__=1E-6DF
define: __DEC32_SUBNORMAL_MIN__=0.000001E-95DF
define: __DEC64_MANT_DIG__=16
define: __DEC64_MIN_EXP__=(-382)
define: __DEC64_MAX_EXP__=385
define: __DEC64_MIN__=1E-383DD
define: __DEC64_MAX__=9.999999999999999E384DD
define: __DEC64_EPSILON__=1E-15DD
define: __DEC64_SUBNORMAL_MIN__=0.000000000000001E-383DD
define: __DEC128_MANT_DIG__=34
define: __DEC128_MIN_EXP__=(-6142)
define: __DEC128_MAX_EXP__=6145
define: __DEC128_MIN__=1E-6143DL
define: __DEC128_MAX__=9.999999999999999999999999999999999E6144DL
define: __DEC128_EPSILON__=1E-33DL
define: __DEC128_SUBNORMAL_MIN__=0.000000000000000000000000000000001E-6143DL
define: __SFRACT_FBIT__=7
define: __SFRACT_IBIT__=0
define: __SFRACT_MIN__=(-0.5HR-0.5HR)
define: __SFRACT_MAX__=0X7FP-7HR
define: __SFRACT_EPSILON__=0x1P-7HR
define: __USFRACT_FBIT__=8
define: __USFRACT_IBIT__=0
define: __USFRACT_MIN__=0.0UHR
define: __USFRACT_MAX__=0XFFP-8UHR
define: __USFRACT_EPSILON__=0x1P-8UHR
define: __FRACT_FBIT__=15
define: __FRACT_IBIT__=0
define: __FRACT_MIN__=(-0.5R-0.5R)
define: __FRACT_MAX__=0X7FFFP-15R
define: __FRACT_EPSILON__=0x1P-15R
define: __UFRACT_FBIT__=16
define: __UFRACT_IBIT__=0
define: __UFRACT_MIN__=0.0UR
define: __UFRACT_MAX__=0XFFFFP-16UR
define: __UFRACT_EPSILON__=0x1P-16UR
define: __LFRACT_FBIT__=31
define: __LFRACT_IBIT__=0
define: __LFRACT_MIN__=(-0.5LR-0.5LR)
define: __LFRACT_MAX__=0X7FFFFFFFP-31LR
define: __LFRACT_EPSILON__=0x1P-31LR
define: __ULFRACT_FBIT__=32
define: __ULFRACT_IBIT__=0
define: __ULFRACT_MIN__=0.0ULR
define: __ULFRACT_MAX__=0XFFFFFFFFP-32ULR
define: __ULFRACT_EPSILON__=0x1P-32ULR
define: __LLFRACT_FBIT__=63
define: __LLFRACT_IBIT__=0
define: __LLFRACT_MIN__=(-0.5LLR-0.5LLR)
define: __LLFRACT_MAX__=0X7FFFFFFFFFFFFFFFP-63LLR
define: __LLFRACT_EPSILON__=0x1P-63LLR
define: __ULLFRACT_FBIT__=64
define: __ULLFRACT_IBIT__=0
define: __ULLFRACT_MIN__=0.0ULLR
define: __ULLFRACT_MAX__=0XFFFFFFFFFFFFFFFFP-64ULLR
define: __ULLFRACT_EPSILON__=0x1P-64ULLR
define: __SACCUM_FBIT__=7
define: __SACCUM_IBIT__=8
define: __SACCUM_MIN__=(-0X1P7HK-0X1P7HK)
define: __SACCUM_MAX__=0X7FFFP-7HK
define: __SACCUM_EPSILON__=0x1P-7HK
define: __USACCUM_FBIT__=8
define: __USACCUM_IBIT__=8
define: __USACCUM_MIN__=0.0UHK
define: __USACCUM_MAX__=0XFFFFP-8UHK
define: __USACCUM_EPSILON__=0x1P-8UHK
define: __ACCUM_FBIT__=15
define: __ACCUM_IBIT__=16
define: __ACCUM_MIN__=(-0X1P15K-0X1P15K)
define: __ACCUM_MAX__=0X7FFFFFFFP-15K
define: __ACCUM_EPSILON__=0x1P-15K
define: __UACCUM_FBIT__=16
define: __UACCUM_IBIT__=16
define: __UACCUM_MIN__=0.0UK
define: __UACCUM_MAX__=0XFFFFFFFFP-16UK
define: __UACCUM_EPSILON__=0x1P-16UK
define: __LACCUM_FBIT__=31
define: __LACCUM_IBIT__=32
define: __LACCUM_MIN__=(-0X1P31LK-0X1P31LK)
define: __LACCUM_MAX__=0X7FFFFFFFFFFFFFFFP-31LK
define: __LACCUM_EPSILON__=0x1P-31LK
define: __ULACCUM_FBIT__=32
define: __ULACCUM_IBIT__=32
define: __ULACCUM_MIN__=0.0ULK
define: __ULACCUM_MAX__=0XFFFFFFFFFFFFFFFFP-32ULK
define: __ULACCUM_EPSILON__=0x1P-32ULK
define: __LLACCUM_FBIT__=31
define: __LLACCUM_IBIT__=32
define: __LLACCUM_MIN__=(-0X1P31LLK-0X1P31LLK)
define: __LLACCUM_MAX__=0X7FFFFFFFFFFFFFFFP-31LLK
define: __LLACCUM_EPSILON__=0x1P-31LLK
define: __ULLACCUM_FBIT__=32
define: __ULLACCUM_IBIT__=32
define: __ULLACCUM_MIN__=0.0ULLK
define: __ULLACCUM_MAX__=0XFFFFFFFFFFFFFFFFP-32ULLK
define: __ULLACCUM_EPSILON__=0x1P-32ULLK
define: __QQ_FBIT__=7
define: __QQ_IBIT__=0
define: __HQ_FBIT__=15
define: __HQ_IBIT__=0
define: __SQ_FBIT__=31
define: __SQ_IBIT__=0
define: __DQ_FBIT__=63
define: __DQ_IBIT__=0
define: __TQ_FBIT__=127
define: __TQ_IBIT__=0
define: __UQQ_FBIT__=8
define: __UQQ_IBIT__=0
define: __UHQ_FBIT__=16
define: __UHQ_IBIT__=0
define: __USQ_FBIT__=32
define: __USQ_IBIT__=0
define: __UDQ_FBIT__=64
define: __UDQ_IBIT__=0
define: __UTQ_FBIT__=128
define: __UTQ_IBIT__=0
define: __HA_FBIT__=7
define: __HA_IBIT__=8
define: __SA_FBIT__=15
define: __SA_IBIT__=16
define: __DA_FBIT__=31
define: __DA_IBIT__=32
define: __TA_FBIT__=63
define: __TA_IBIT__=64
define: __UHA_FBIT__=8
define: __UHA_IBIT__=8
define: __USA_FBIT__=16
define: __USA_IBIT__=16
define: __UDA_FBIT__=32
define: __UDA_IBIT__=32
define: __UTA_FBIT__=64
define: __UTA_IBIT__=64
define: __REGISTER_PREFIX__=
define: __USER_LABEL_PREFIX__=
define: __GNUC_STDC_INLINE__=1
define: __NO_INLINE__=1
define: __CHAR_UNSIGNED__=1
define: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1=1
define: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2=1
define: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4=1
define: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8=1
define: __GCC_ATOMIC_BOOL_LOCK_FREE=2
define: __GCC_ATOMIC_CHAR_LOCK_FREE=2
define: __GCC_ATOMIC_CHAR16_T_LOCK_FREE=2
define: __GCC_ATOMIC_CHAR32_T_LOCK_FREE=2
define: __GCC_ATOMIC_WCHAR_T_LOCK_FREE=2
define: __GCC_ATOMIC_SHORT_LOCK_FREE=2
define: __GCC_ATOMIC_INT_LOCK_FREE=2
define: __GCC_ATOMIC_LONG_LOCK_FREE=2
define: __GCC_ATOMIC_LLONG_LOCK_FREE=2
define: __GCC_ATOMIC_TEST_AND_SET_TRUEVAL=1
define: __GCC_ATOMIC_POINTER_LOCK_FREE=2
define: __PRAGMA_REDEFINE_EXTNAME=1
define: __SIZEOF_WCHAR_T__=4
define: __SIZEOF_WINT_T__=4
define: __SIZEOF_PTRDIFF_T__=4
define: __ARM_FEATURE_DSP=1
define: __ARM_FEATURE_QBIT=1
define: __ARM_FEATURE_SAT=1
define: __ARM_FEATURE_UNALIGNED=1
define: __ARM_32BIT_STATE=1
define: __ARM_FEATURE_LDREX=15
define: __ARM_FEATURE_CLZ=1
define: __ARM_FEATURE_SIMD32=1
define: __ARM_SIZEOF_MINIMAL_ENUM=4
define: __ARM_SIZEOF_WCHAR_T=4
define: __ARM_ARCH_PROFILE=65
define: __arm__=1
define: __ARM_ARCH=7
define: __ARM_ARCH_ISA_ARM=1
define: __APCS_32__=1
define: __thumb__=1
define: __thumb2__=1
define: __THUMBEL__=1
define: __ARM_ARCH_ISA_THUMB=2
define: __ARMEL__=1
define: __VFP_FP__=1
define: __ARM_FP=12
define: __THUMB_INTERWORK__=1
define: __ARM_ARCH_7A__=1
define: __ARM_PCS_VFP=1
define: __ARM_EABI__=1
define: __ARM_ASM_SYNTAX_UNIFIED__=1
define: __GXX_TYPEINFO_EQUALITY_INLINE=0
define: __gnu_linux__=1
define: __linux=1
define: __linux__=1
define: linux=1
define: __unix=1
define: __unix__=1
define: unix=1
define: __ELF__=1
define: _STDC_PREDEF_H=1
define: __STDC_IEC_559__=1
define: __STDC_IEC_559_COMPLEX__=1
define: __STDC_ISO_10646__=201505L
define: __STDC_NO_THREADS__=1
define: CONFIG_GPIOLIB=y
define: CONFIG_OF_GPIO=y
other: --gcc
other: --gnu_version=70500
stdver: c11
intelliSenseMode: gcc-arm
Queueing IntelliSense update for files in translation unit of: /home/devuser/Code/raspberry-pi/linux/drivers/misc/rbsw-relay/rb-relay-52pi-ep0099.c
cpptools/finishUpdateSquiggles
Error squiggle count: 0
terminating child process: 31976
Update IntelliSense time (sec): 2.59
cpptools/getSemanticTokens: file:///home/devuser/Code/raspberry-pi/linux/drivers/misc/rbsw-relay/rb-relay-52pi-ep0099.c (id: 9)
textDocument/completion: file:///home/devuser/Code/raspberry-pi/linux/drivers/misc/rbsw-relay/rb-relay-52pi-ep0099.c (id: 10)
auto_complete::handle_completion: file:///home/devuser/Code/raspberry-pi/linux/drivers/misc/rbsw-relay/rb-relay-52pi-ep0099.c (201:8)
Offering completion
Screenshots
See attached.

Additional context
Hey, I am also facing the same problem. But, please can you tell me how to go back to 0.29.0 and cancel auto-updates
Hey, I am also facing the same problem. But, please can you tell me how to go back to 0.29.0 and cancel auto-updates
First of all go to C/C++ Extension settings then make update channel default, Then you can right click on setting symbol of C/C++ Extension from the Extension tab, on settings you can find 'install another version'. You can select previous versions like 0.29.0
Same issue on windows, but it's working on my another system with linux
Same here on openSUSE Tumbleweed.
Additional comments:
I am getting the following debug output from the cpp extension:
textDocument/hover: file:///software/repo/alarm/alarm/main_tree_test.cpp (id: 18)
Quick info operation failed: FE: 'Compiler exited with error - No IL available'
using Tag Parser for quick info
I have verified that the intellisense breaks when updating from 0.30.0-insiders2 to 0.30.0-insiders3
Using gcc compiler with a mixture of c and c++ files for an embedded system
You should be able to change the C_Cpp.updateChannel setting to "Default" to switch to 0.29.0.
We don't have a repro yet for the 0.30.0-insiders3 IntelliSense regression. Does anyone have a minimum repro?
@adambrickman Did 0.30.0-insiders2 work? Can you compare the log diagnostics output with 0.29.0 to see what is different? We added support for native ARM IntelliSense with 0.30.0-insiders3, but there might be some issue when cross-compiling for ARM.
Hi @sean-mcmanus ,
I installed 0.30.0-insiders2 by downloading https://github.com/microsoft/vscode-cpptools/releases/download/0.30.0-insiders2/cpptools-linux.vsix and installing manually. It seems this version is OK.
Thanks,
Adam
Which features of IntelliSense are broken? Just completion? Does go to definition on local variables work? Or hover over "auto" or numbers?
Is anyone able to identify repro requirements? Does it work with simpler projects? Is this only on Linux? Is it only with arm IntelliSense modes? Does it only repro with C and not C++?
Which features of IntelliSense are broken? Just completion? Does go to definition on local variables work? Or hover over "auto" or numbers?

Is anyone able to identify repro requirements? Does it work with simpler projects? Is this only on Linux? Is it only with arm IntelliSense modes? Does it only repro with C and not C++?
I've only tried on Ubuntu Linux, sorry. It does seem that a simpler C project is not suffering this problem. With the Linux kernel project, it does not seem to matter which IntelliSense mode is chosen.
If it helps my extension's C/C++ settings are:
Autocomplete = Default
Intelli Sense Mode = gcc-arm
^ I tried changing this to blank (default) and gcc-x86 and the problem still repros, so I think this does not matter.
Intelli Sense Cache Size = 5120 MB
Intelli Sense Engine = Default
Intelli Sense Engine Fallback = Disabled
I'm also having this issue. For me, it seems like everything works except autocomplete. Specifically, autocomplete seems to work once for a given file but then it never works for that file again unless I relaunch VSCode.
I do not have this problem if I revert to 0.29.0 -- autocomplete always works. I cannot try 0.30.0insiders2 because of https://github.com/microsoft/vscode-cpptools/issues/5848.
I'm working on Debian 10, x64 in an all C++ project. I'll try to gather more information.
Can someone who is reproing this see if adding "C_Cpp.intelliSenseCacheSize": 0 fixes it?
We haven't been able to find a repro yet:

@sean-mcmanus Thanks for helping investigate this thoroughly, it is appreciated. I tried "C_Cpp.intelliSenseCacheSize": 0 and the problem still exists. I did also try 'Reset the IntelliSense database', and opening the base repository folder as a new workspace, but no luck.
Have you tried to repro on a reasonably large repository? Linux kernel make a good test case - it is large but not to the same degree as full Android builds. Perhaps try 'git clone https://github.com/raspberrypi/linux' and checkout branch rpi-4.19.y. Does that repro for you?
I'm not reproing the issue with linux/arch/alpha/boot/tools/mkbb.c (with gcc 10.2). Do you know a particular file that has a problem? I could try other files tomorrow.

That file repros for me. Going back to 0.30.0-insiders2 is OK.
Just to double-check, there is "normal" logging messages after "Offering completion", right? We just want to confirm that the processes are stuck.
My (non) repro is with Ubuntu 20 and arm-linux-gnueabihf-gcc (Ubuntu 9.3.0-10ubuntu1) 9.3.0, not sure yet if the OS or gcc versions are important for the repro.
It will continue to log but that is the last message I see after I ctrl+space, until I do something else.
I don't think the gcc version is important, since I'm only using VS Code as a smart editor. I use the terminal to do the actual compiling. OS _may_ be important, not quite sure on that front.
I tried the linaro gcc 7.5 arm compiler and I'm still not reproing it.

Does your C/C++: Log Diagnostics output match mine?
Looks like I got a repro with linux/arch/alpha/boot/tools/objstrip.c . I'm investigating...
The problem I'm seeing seems to be caused by the usage of "${workspaceFolder}/**", which places the recursive includes after the system includes. If your workspace uses #include that matches a system include when it's supposed to match a workspace file instead, that could lead to our parser hitting some abnormal state. The issue got fixed after I replaced the recursive include by a list of the includes explicitly, causing them to appear before the system includes. We may be able to fix this by making sure the recursive includes get used before the system includes.
@sean-mcmanus - Awesome! Nice sleuthing. Does that match the findings from linux/arch/alpha/boot/tools/mkbb.c ? For that I recall I repro'd but it was working OK for you.
For mkbb.c does your includePath just have system includes (like in my screenshot)? If you change the includePath to "${workspaceRoot}" and the issue still repros, then the issue you're hitting for mkbb.c is an unrelated issue. Also, if you don't see the "No IL available" in the debug logging (C_Cpp.loggingLevel set to "Debug") for objstrip.c, like @marco-fam mentioned, then you're hitting a different issue. We're working on adding recursive includes logging to Log Diagnostics to warn about cases where the intended include is actually a recursive include that wasn't used due to the non-deterministic ordering.
Another thing to look into would be opening the headers and looking for errors that appear -- later on we plan to add error messages for compilation problems in the dependent includes, because those errors can cause cascading parse failures, which could cause completion to fail. The current workaround to simulate this would be to compile the source code file with an option like -E to create a single file and then look for the 1st IntelliSense error that is shown, although we've encountered issues where -E doesn't create a compilable file (maybe some bug in clang).
So with our pending C/C++ Log Diagnostics changes, you'd see something like:
------- Potential include path issues --------
Some headers exist in multiple locations. If IntelliSense is behaving incorrectly,
try adding one of the alternate paths to the `includePath` in your configuration in
c_cpp_properties.json to override the automatic path discovery for that header.
Using: ~/linux/include/asm-generic/barrier.h
Alternative: "~/linux/include"
Alternative: "~/linux/tools/include"
Using: /usr/local/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/include/asm-generic/bitsperlong.h
Alternative: "~/linux/include/uapi"
Alternative: "~/linux/tools/include/uapi"
<etc.>
Adding the 2nd (or 1st) alternative of "~/linux/tools/include" to the includePath fixes the "No IL issue" for me. But I'm not sure what the correct includePath is for that particular file. The problem exhibited here is the non-deterministic ordering of recursive includes is choosing asm-generic before /linux/tools/include.
The "**" recursive include mechanism was only designed to be a heuristic, and the "correct" solution would using a configuration provider that has knowledge of how the code is built (e.g. CMake Tools extension, a Makefile extension...I don't think the later is available yet).
So our hypothesis is that the "regression" in IntelliSense was just due to undefined parsing behavior in an underlying error condition and not necessary any particular bug. There still could be a regression bug, but we'd need more repro info with a correctly configured TU.
If anyone wants to try a preview of a Makefile extension that should configure things correctly instead of relying on recursive includes, see the comment at https://github.com/microsoft/vscode-cpptools/issues/5588#issuecomment-684113609 .
@sean-mcmanus: I'm configuring things with a compile_commands.json file. I'm assuming that I would not benefit from the Makefile extension?
I see this autocomplete issue in the insiders release in certain files (but not all).
@ryan-holt-1 Yeah, if you're using compile_commands.json, then your configuration should be okay unless you're hitting a bug with our handling of that. For you repro, what do you see in the C/C++ logging (maybe if C_Cpp.loggingLevel is set to "Debug"). Is there a "Failed" or "No IL" message?
@sean-mcmanus: The only thing that looks suspicious in the logs is this:
auto_complete::handle_completion: file:///local-ssd/ryanholt/ImplicitExpansion/matlab/src/cgir_support/dom_core/analysis/livenessAnalysis/KillSet.cpp (18:26)
Offering completion
sending 1 changes to server
sending 1 changes to server
sending 1 changes to server
Failed to read response from server: 8
I see "Failed to read response from server: 8" as soon as I type the "." or "->". This only happens the first time I try asking for completion in a file. If I try it again, nothing happens.
Note that in 0.29.0, I do not see this. Instead, I see:
auto_complete::handle_completion: file:///local-ssd/ryanholt/ImplicitExpansion/matlab/src/cgir_support/dom_core/analysis/livenessAnalysis/KillSet.cpp (18:26)
Offering completion
sending 1 changes to server
sending 1 changes to server
completionItem/resolve (id: 47)
@ryan-holt-1 Yes, you're hitting a crash in cpptools-srv -- could be the same as https://github.com/microsoft/vscode-cpptools/issues/5960, which we have a repro for. If you can attach a debugger to cpptools-srv to get a crash call stack, I can determine if it's the same crash or different one.
@sean-mcmanus:
Thread 4 "cpptools-srv" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fed792f1700 (LWP 163755)]
0x00000000005d3ed9 in an_edge_symbol_impl_t
(gdb) bt 10
@ryan-holt-1 Yes, that is the same crash as https://github.com/microsoft/vscode-cpptools/issues/5960 . I'm currently investigating that. The hit count is not severely high, but it could still be our highest hitting crash (and a regression).
@ryan-holt-1 I filed a bug on VS at https://developercommunity.visualstudio.com/content/problem/1170465/c-intellisense-crashes-from-completion-in-clang-mo.html and also emailed the VC team directly (i.e. the issue is caused by recent updates to our shared IntelliSense parser). I'm not sure how many other users on this thread were hitting that issue versus the other non-crash issue in the recursive includes scenario.
@sean-mcmanus: Thank you!
With https://github.com/microsoft/vscode-cpptools/releases/tag/0.30.0-insiders4 we added recursive includes diagnostics when conflicting includePaths are detected, which could help resolve the "No IL" issues. The completion crash is being tracked by https://github.com/microsoft/vscode-cpptools/issues/5960 . If there are other issues, please file a new issue.
I don't know if I should report this under an already opened issue?
Anyway let me know if I need to move it.
After reading all the comments here I was able to isolate the include path that was giving me the
_textDocument/hover: file:///software/repo/alarm/alarm/main_tree_test.cpp (id: 18)
Quick info operation failed: FE: 'Compiler exited with error - No IL available'_
_However the issue is still present in 0.30.0-insiders4 as I have just tested it._
It seems that both the system headers on linux and out RTEMS library headers will cause the intellisense problem if we included
the line marked bold in the cpp.includePath.
"${workspaceFolder}/RTEMS/board",
"${workspaceFolder}/RTEMS/board/include",
"${workspaceFolder}/RTEMS/rtems4.11/nios2-rtems4.11/include",<-- // If this line is commented out intellisense works
"${workspaceFolder}/RTEMS/rtems4.11/nios2-rtems4.11/include/c++/4.9.3",
"${workspaceFolder}/RTEMS/rtems4.11/nios2-rtems4.11/include/c++/4.9.3/nios2-rtems4.11",
"${workspaceFolder}/RTEMS/rtems4.11/nios2-rtems4.11/include/c++/4.9.3/backward",
"${workspaceFolder}/RTEMS/rtems4.11/lib/gcc/nios2-rtems4.11/4.9.3/include",
"${workspaceFolder}/RTEMS/rtems4.11/lib/gcc/nios2-rtems4.11/4.9.3/include-fixed",
"${workspaceFolder}/RTEMS/rtems4.11/nios2-rtems4.11/nios2_alt/lib/include",
"${workspaceFolder}/RTEMS/rtems4.11/nios2-rtems4.11/nios2_alt/lib/include/HAL",
"${workspaceFolder}/RTEMS/RTEMS_devel/rtems/cpukit/score/cpu/nios2"
The folder contains include files such as math.h etc.

If I comment out "${workspaceFolder}/RTEMS/rtems4.11/nios2-rtems4.11/include" I will instead hit the system headers located in "usr/include/c++/7/math.h" and then intellisense works again!

@marco-fam The includePath ordering should match what you use to compile your code, so that the correct file can be included. It seems like "${workspaceFolder}/RTEMS/rtems4.11/nios2-rtems4.11/include" and maybe other sysroot-like include paths should only be used for files that are intended to use those. You might also look into setting the C_Cpp.default.systemIncludePath setting or making sure compilerPath or compilerArgs are working as intended. Using C/C++: Log Diagnostics can help check if the includePaths are a being set correctly.
@ryan-holt-1 The new_object crash is fixed with https://github.com/microsoft/vscode-cpptools/releases/tag/0.30.0-insiders5 .
@ryan-holt-1 The new_object crash is fixed with https://github.com/microsoft/vscode-cpptools/releases/tag/0.30.0-insiders5 .
always unable to auto complete...
Failed to read response from server: 20
@sean-mcmanus: Thanks! Can confirm that everything is working for me now.
@sean-mcmanus - Unfortunately, insiders5 still has the broken IntelliSense for me. No crashes though.
My include path is simply this:
"includePath": [
"${workspaceFolder}/**"
],
Is that incorrect?
@Hughen You're hitting a different crash. If you can attach a debugger to the cpptools-srv process to get a call stack that would help us identify which crash you're hitting.
@adambrickman If you're using a Linux repo, using "${workspaceFolder}/**" unlikely to give good results because it will pick up system headers in cases where workspace headers are required (which 0.30.0-insiders5 has added some diagnostics logging to identify), and also some files require forced includes to be specified (-include in the makefile). You would need to check what the makefile is using to compile the particular file and make sure the includes, defines, forcedInclude, etc. is correct. Our pending Makefile extension is expected to be able to configure these automatically.
@sean-mcmanus - I think there is something more to it than this, especially since this behavior is new (never had an issue with this prior to 0.30.0). Also, regardless of headers, shouldn't vscode be able to detect local function arguments or variables? Intellisense is totally dead.
E.g.
int myFun(int myData) {
myD
^ // trying to intellisense here returns nothing, even though it is declared in the function arguments
int someVariable;
someV
^ // trying to Intellisense here does nothing either, even though it is declared in the very previous line (or, in real code, at the top of the function).
...
}
@adambrickman You're getting the "No IL" in the logging, right? This doesn't repro in a simple project with a single test.cpp file, right? If you get the "No IL" then all IntelliSense functionality like local variable goto definition would break in addition to completion. If the TU is in a non-compileable state due to issues in the headers, then the behavior is non-deterministic so it may have worked correctly in 0.29.0, but that would just have been "lucky". It is still possible you're hitting a real regression bug, but I would need to get some sort of repro.
@sean-mcmanus - Strange. This is failing in multiple projects (all of which are various versions of linux kernels). The thing I have in common in them is my include path is either blank or "${workspaceFolder}/**". The code-workspace is located in the root of the kernel folder. If I go back to version 0.29.0, IntelliSense starts working again. 0.28.3 works as well, I just tried going back. So does 0.27.1 (that's as far as I've tried, but I'd be happy to regress further if it would be helpful). But once I install 0.30.x, it breaks.
It seems something has fundamentally changed in that release.
@adambrickman The usage of "${workspaceFolder}/**" can generate non-deterministic includePath orderings. You can see the orderings we choose via running C/C++ log diagnostics. If you can find a Linux source file that repros the issue with a set of includePath, defines, forcedInclude, etc. that will actually compile, then we could look into fixing that bug, either via looking at the recursive include paths results from C/C++ Log Diagnostics or manually setting the includePaths.
I'm not aware of any particular change that could cause this, other than lots of parser changes, mostly in support of new C++20 stuff. The "No IL" means our parser hit an error that wasn't recoverable (and also wasn't crash inducing).
@adambrickman To explain this further -- the error is most likely occurring in a header file, which may have been "recoverable" in 0.29.0, but then due to undefined behavior in regards to how error handling is done, it could cause it to fail in 0.30.0-insiders, because the parser might be in a state where it can't continue to give additional errors due to previous errors (in the headers, not shown in the opened source file that his hovered over). If we implemented #3873 , then the errors in the header files would most likely make the issue easier to diagnose.
@sean-mcmanus - Thanks for the explanation. I will have to try to get a consistent repro on a clean system when I get a chance, so it will be easier to investigate what is wrong. It will help cut down on the variables. I'll post back to this thread if that is OK if/when I get some results.
@adambrickman We found/fixed the root cause -- IntelliSense was incorrectly aborting after any #error occurred (see https://github.com/microsoft/vscode-cpptools/issues/6114). It should be fixed in the next update.
We published an insiders release with the fix for this. Please try it out and let us know if you continue to have issues.
https://github.com/microsoft/vscode-cpptools/releases/tag/1.0.1-insiders
Most helpful comment
First of all go to C/C++ Extension settings then make update channel default, Then you can right click on setting symbol of C/C++ Extension from the Extension tab, on settings you can find 'install another version'. You can select previous versions like 0.29.0