Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Incorrect IntelliSense Error on SSH remote: identifier "Point" is undefined #12455

Open
ying-hua opened this issue Jul 10, 2024 · 12 comments
Open
Assignees
Labels
Language Service more info needed The issue report is not actionable in its current state

Comments

@ying-hua
Copy link

Environment

  • OS and Version: Windows 11 Family 23H2
  • VS Code Version: 1.83.0
  • C/C++ Extension Version: 1.20.5
  • If using SSH remote, specify OS of remote machine: Ubuntu 22.04.2 LTS

Bug Summary and Steps to Reproduce

Bug Summary:
main.cpp appears identifier "Point" is undefined error, Ctrl + Click doesn't work yet, but my header file is included correctly. It's ok when I run this command: g++ -I xxx/include xxx/main.cpp xxx/include/aaa.cpp -o main
When I open the aaa.h file in the window, the error disappears and Ctrl + Click can jump to the aaa.h. But when I close the aaa.h file in window, reset intelliSense database and rescan Workspace, the error appears again.

Steps to reproduce:

  1. Connect to guest Ubuntu via SSH remote
  2. Create some files (provided below) in guest Ubuntu.
  3. Open the main.cpp in vscode (installed in host machine).
  4. See error

Expected behavior:
No errors and Ctrl + Click works well.

Configuration and Logs

======================================c_cpp_properties.json======================================
{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "windowsSdkVersion": "10.0.17763.0",
            "compilerPath": "/usr/bin/g++",
            "cStandard": "c11",
            "cppStandard": "c++11",
            "intelliSenseMode": "${default}"
        }
    ],
    "version": 4
}

======================================C/C++ Diagnostics========================================
-------- Diagnostics - 2024/7/10 10:07:26
Version: 1.20.5
Current Configuration:
{
    "name": "Linux",
    "includePath": [
        "/home/hxc/ctest/**"
    ],
    "windowsSdkVersion": "10.0.17763.0",
    "compilerPath": "/usr/bin/g++",
    "cStandard": "c11",
    "cppStandard": "c++11",
    "compilerPathIsExplicit": true,
    "cStandardIsExplicit": true,
    "cppStandardIsExplicit": true,
    "intelliSenseModeIsExplicit": true,
    "compilerPathInCppPropertiesJson": "/usr/bin/g++",
    "mergeConfigurations": false,
    "browse": {
        "path": [
            "/home/hxc/ctest/**",
            "${workspaceFolder}"
        ],
        "limitSymbolsToIncludedHeaders": true
    }
}
cpptools version (native): 1.20.5.0
Translation Unit Mappings:
[ /home/hxc/ctest/xxx/main.cpp - source TU]:
Translation Unit Configurations:
[ /home/hxc/ctest/xxx/main.cpp ]:
    Process ID: 16007
    Memory Usage: 15 MB
    Compiler Path: /usr/bin/g++
    Includes:
        /usr/include/c++/11
        /usr/include/x86_64-linux-gnu/c++/11
        /usr/include/c++/11/backward
        /usr/lib/gcc/x86_64-linux-gnu/11/include
        /usr/local/include
        /usr/include/x86_64-linux-gnu
        /usr/include
    Standard Version: c++11
    IntelliSense Mode: linux-gcc-x64
    Other Flags:
        --g++
        --gnu_version=110400
Total Memory Usage: 15 MB

------- Workspace parsing diagnostics -------
Number of files discovered (not excluded): 6858

========================================C/C++ Log====================================================
loggingLevel: Debug
LSP: (received) cpptools/preinitialize (id: 1)
LSP: (invoked) cpptools/preinitialize (id: 1)
LSP: Sending response (id: 1)
LSP: (received) cpptools/initialize (id: 2)
LSP: (invoked) cpptools/initialize (id: 2)
cpptools version (TypeScript): 1.20.5
cpptools version (native): 1.20.5.0
Autocomplete is enabled.
Error squiggles are enabled if all header dependencies are resolved.
Hover is enabled.
IntelliSense Engine = default.
LSP: Sending response (id: 2)
LSP: (received) cpptools/queryCompilerDefaults (id: 3)
LSP: (invoked) cpptools/queryCompilerDefaults (id: 3)
Querying compiler for default C++ language standard using command line: /usr/bin/clang-14 -x c++ -E -dM /dev/null
Detected language standard version: c++14
Querying compiler's default target using command line: "/usr/bin/clang-14" -dumpmachine
Compiler returned default target value: x86_64-pc-linux-gnu
Compiler query command line: /usr/bin/clang-14 -std=c17 -m64 -Wp,-v -fno-blocks -E -dM -x c /dev/null
Attempting to get defaults from C compiler in "compilerPath" property: '/usr/bin/clang-14'
Compiler query command line: /usr/bin/clang-14 -std=c++14 -m64 -Wp,-v -fno-blocks -E -dM -x c++ /dev/null
Attempting to get defaults from C++ compiler in "compilerPath" property: '/usr/bin/clang-14'
LSP: Sending response (id: 3)
LSP: Message ignored due to no registered handler: $/setTrace
LSP: (received) cpptools/queryCompilerDefaults (id: 4)
LSP: (invoked) cpptools/queryCompilerDefaults (id: 4)
LSP: (received) cpptools/didChangeCppProperties (id: 5)
LSP: Sending response (id: 4)
LSP: (invoked) cpptools/didChangeCppProperties (id: 5)
LSP: (received) cpptools/didChangeSettings
enabling full-text triggers
Code browsing service initialized
Querying compiler for default C++ language standard using command line: /usr/bin/g++ -x c++ -E -dM /dev/null
Detected language standard version: gnu++17
Querying compiler's default target using command line: "/usr/bin/g++" -dumpmachine
Compiler returned default target value: x86_64-linux-gnu
Compiler query command line: /usr/bin/g++ -std=c++11 -m64 -Wp,-v -E -dM -x c++ /dev/null
Attempting to get defaults from C++ compiler in "compilerPath" property: '/usr/bin/g++'
Compiler query command line: /usr/bin/g++ -std=c11 -m64 -Wp,-v -E -dM -x c /dev/null
Attempting to get defaults from C compiler in "compilerPath" property: '/usr/bin/g++'
  Folder: /usr/include/ will be indexed
  Folder: /usr/lib/gcc/x86_64-linux-gnu/11/include/ will be indexed
  Folder: /usr/local/include/ will be indexed
  Folder: /home/hxc/ctest/ will be indexed
LSP: Sending response (id: 5)
Discovering files...
LSP: (invoked) cpptools/didChangeSettings
Autocomplete is enabled.
Error squiggles are enabled if all header dependencies are resolved.
Hover is enabled.
IntelliSense Engine = default.
Enhanced Colorization is enabled.
  Processing folder (recursive): /usr/include/
LSP: (received) cpptools/didChangeVisibleTextEditors
LSP: (invoked) cpptools/didChangeVisibleTextEditors
  Processing folder (recursive): /usr/lib/gcc/x86_64-linux-gnu/11/include/
  Processing folder (recursive): /usr/local/include/
  Processing folder (recursive): /home/hxc/ctest/
  Discovering files: 6858 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.
LSP: (received) cpptools/didChangeVisibleTextEditors
LSP: (invoked) cpptools/didChangeVisibleTextEditors
LSP: (received) cpptools/didChangeVisibleTextEditors
LSP: (invoked) cpptools/didChangeVisibleTextEditors
LSP: (received) textDocument/didOpen: file:///home/hxc/ctest/xxx/main.cpp
LSP: (invoked) textDocument/didOpen: file:///home/hxc/ctest/xxx/main.cpp
LSP: (received) cpptools/didChangeVisibleTextEditors
LSP: (invoked) cpptools/didChangeVisibleTextEditors
LSP: (received) cpptools/getCodeActions: file:///home/hxc/ctest/xxx/main.cpp (id: 6)
LSP: (received) cpptools/didChangeVisibleTextEditors
LSP: (received) cpptools/didChangeActiveEditor: file:///home/hxc/ctest/xxx/main.cpp
LSP: (received) cpptools/getDocumentSymbols: file:///home/hxc/ctest/xxx/main.cpp (id: 7)
LSP: (received) cpptools/didChangeTextEditorSelection
LSP: (invoked) cpptools/getDocumentSymbols: file:///home/hxc/ctest/xxx/main.cpp (id: 7)
Intellisense update pending for: file:///home/hxc/ctest/xxx/main.cpp
LSP: (invoked) cpptools/getCodeActions: file:///home/hxc/ctest/xxx/main.cpp (id: 6)
LSP: Sending response (id: 6)
LSP: (invoked) cpptools/didChangeVisibleTextEditors
LSP: (invoked) cpptools/didChangeActiveEditor: file:///home/hxc/ctest/xxx/main.cpp
LSP: (invoked) cpptools/didChangeTextEditorSelection
LSP: Sending response (id: 7)
IntelliSense update scheduled and TU acquisition started for: file:///home/hxc/ctest/xxx/main.cpp
Populating file name cache...
Done populating filename cache. Elapsed time: 12 ms
Resolving recursive includes...
Done resolving recursive includes.
sending compilation args for /home/hxc/ctest/xxx/main.cpp
  include: /usr/include/c++/11
  include: /usr/include/x86_64-linux-gnu/c++/11
  include: /usr/include/c++/11/backward
  include: /usr/lib/gcc/x86_64-linux-gnu/11/include
  include: /usr/local/include
  include: /usr/include/x86_64-linux-gnu
  include: /usr/include
  define: __SSP_STRONG__=3
  define: __DBL_MIN_EXP__=(-1021)
  define: __UINT_LEAST16_MAX__=0xffff
  define: __ATOMIC_ACQUIRE=2
  define: __FLT128_MAX_10_EXP__=4932
  define: __FLT_MIN__=1.17549435082228750796873653722224568e-38F
  define: __GCC_IEC_559_COMPLEX=2
  define: __UINT_LEAST8_TYPE__=unsigned char
  define: __SIZEOF_FLOAT80__=16
  define: __INTMAX_C(c)=c ## L
  define: __CHAR_BIT__=8
  define: __UINT8_MAX__=0xff
  define: __SCHAR_WIDTH__=8
  define: __WINT_MAX__=0xffffffffU
  define: __FLT32_MIN_EXP__=(-125)
  define: __ORDER_LITTLE_ENDIAN__=1234
  define: __SIZE_MAX__=0xffffffffffffffffUL
  define: __WCHAR_MAX__=0x7fffffff
  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: __DBL_DENORM_MIN__=double(4.94065645841246544176568792868221372e-324L)
  define: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8=1
  define: __GCC_ATOMIC_CHAR_LOCK_FREE=2
  define: __GCC_IEC_559=2
  define: __FLT32X_DECIMAL_DIG__=17
  define: __FLT_EVAL_METHOD__=0
  define: __FLT64_DECIMAL_DIG__=17
  define: __CET__=3
  define: __GCC_ATOMIC_CHAR32_T_LOCK_FREE=2
  define: __UINT_FAST64_MAX__=0xffffffffffffffffUL
  define: __SIG_ATOMIC_TYPE__=int
  define: __DBL_MIN_10_EXP__=(-307)
  define: __FINITE_MATH_ONLY__=0
  define: __FLT32X_MAX_EXP__=1024
  define: __FLT32_HAS_DENORM__=1
  define: __UINT_FAST8_MAX__=0xff
  define: __FLT32_MAX_10_EXP__=38
  define: __DEC64_MAX_EXP__=385
  define: __INT8_C(c)=c
  define: __INT_LEAST8_WIDTH__=8
  define: __UINT_LEAST64_MAX__=0xffffffffffffffffUL
  define: __INT_LEAST8_MAX__=0x7f
  define: __SHRT_MAX__=0x7fff
  define: __LDBL_MAX__=1.18973149535723176502126385303097021e+4932L
  define: __FLT64X_MAX_10_EXP__=4932
  define: __LDBL_IS_IEC_60559__=2
  define: __FLT64X_HAS_QUIET_NAN__=1
  define: __UINT_LEAST8_MAX__=0xff
  define: __GCC_ATOMIC_BOOL_LOCK_FREE=2
  define: __FLT128_DENORM_MIN__=6.47517511943802511092443895822764655e-4966F128
  define: __UINTMAX_TYPE__=long unsigned int
  define: __linux=1
  define: __DEC32_EPSILON__=1E-6DF
  define: __FLT_EVAL_METHOD_TS_18661_3__=0
  define: __unix=1
  define: __UINT32_MAX__=0xffffffffU
  define: __GXX_EXPERIMENTAL_CXX0X__=1
  define: __FLT128_MIN_EXP__=(-16381)
  define: __WINT_MIN__=0U
  define: __FLT128_MIN_10_EXP__=(-4931)
  define: __FLT32X_IS_IEC_60559__=2
  define: __INT_LEAST16_WIDTH__=16
  define: __SCHAR_MAX__=0x7f
  define: __FLT128_MANT_DIG__=113
  define: __WCHAR_MIN__=(-__WCHAR_MAX__ - 1)
  define: __INT64_C(c)=c ## L
  define: __GCC_ATOMIC_POINTER_LOCK_FREE=2
  define: __FLT32X_MANT_DIG__=53
  define: __GCC_ATOMIC_CHAR16_T_LOCK_FREE=2
  define: __USER_LABEL_PREFIX__=
  define: __FLT64X_EPSILON__=1.08420217248550443400745280086994171e-19F64x
  define: __STDC_HOSTED__=1
  define: __DEC64_MIN_EXP__=(-382)
  define: __DBL_DIG__=15
  define: __FLT32_DIG__=6
  define: __FLT_EPSILON__=1.19209289550781250000000000000000000e-7F
  define: __GXX_WEAK__=1
  define: __SHRT_WIDTH__=16
  define: __FLT32_IS_IEC_60559__=2
  define: __LDBL_MIN__=3.36210314311209350626267781732175260e-4932L
  define: __DBL_IS_IEC_60559__=2
  define: __DEC32_MAX__=9.999999E96DF
  define: __FLT64X_DENORM_MIN__=3.64519953188247460252840593361941982e-4951F64x
  define: __FLT32X_HAS_INFINITY__=1
  define: __INT32_MAX__=0x7fffffff
  define: __unix__=1
  define: __INT_WIDTH__=32
  define: __SIZEOF_LONG__=8
  define: __STDC_IEC_559__=1
  define: __STDC_ISO_10646__=201706L
  define: __UINT16_C(c)=c
  define: __DECIMAL_DIG__=21
  define: __STDC_IEC_559_COMPLEX__=1
  define: __FLT64_EPSILON__=2.22044604925031308084726333618164062e-16F64
  define: __gnu_linux__=1
  define: __INT16_MAX__=0x7fff
  define: __FLT64_MIN_EXP__=(-1021)
  define: __FLT64X_MIN_10_EXP__=(-4931)
  define: __LDBL_HAS_QUIET_NAN__=1
  define: __FLT64_MANT_DIG__=53
  define: __FLT64X_MANT_DIG__=64
  define: __GNUC__=11
  define: __GXX_RTTI=1
  define: __pie__=2
  define: __MMX__=1
  define: __FLT_HAS_DENORM__=1
  define: __SIZEOF_LONG_DOUBLE__=16
  define: __BIGGEST_ALIGNMENT__=16
  define: __STDC_UTF_16__=1
  define: __FLT64_MAX_10_EXP__=308
  define: __FLT32_HAS_INFINITY__=1
  define: __DBL_MAX__=double(1.79769313486231570814527423731704357e+308L)
  define: __INT_FAST32_MAX__=0x7fffffffffffffffL
  define: __DBL_HAS_INFINITY__=1
  define: __SIZEOF_FLOAT__=4
  define: __HAVE_SPECULATION_SAFE_VALUE=1
  define: __DEC32_MIN_EXP__=(-94)
  define: __INTPTR_WIDTH__=64
  define: __FLT64X_HAS_INFINITY__=1
  define: __UINT_LEAST32_MAX__=0xffffffffU
  define: __FLT32X_HAS_DENORM__=1
  define: __INT_FAST16_TYPE__=long int
  define: __STRICT_ANSI__=1
  define: __MMX_WITH_SSE__=1
  define: __LDBL_HAS_DENORM__=1
  define: __cplusplus=201103L
  define: __DEC32_MIN__=1E-95DF
  define: __DEPRECATED=1
  define: __DBL_MAX_EXP__=1024
  define: __WCHAR_WIDTH__=32
  define: __FLT32_MAX__=3.40282346638528859811704183484516925e+38F32
  define: __DEC128_EPSILON__=1E-33DL
  define: __SSE2_MATH__=1
  define: __ATOMIC_HLE_RELEASE=131072
  define: __PTRDIFF_MAX__=0x7fffffffffffffffL
  define: __amd64=1
  define: __ATOMIC_HLE_ACQUIRE=65536
  define: __GNUG__=11
  define: __LONG_LONG_MAX__=0x7fffffffffffffffLL
  define: __SIZEOF_SIZE_T__=8
  define: __FLT64X_MIN_EXP__=(-16381)
  define: __SIZEOF_WINT_T__=4
  define: __LONG_LONG_WIDTH__=64
  define: __FLT32_MAX_EXP__=128
  define: __GXX_ABI_VERSION=1016
  define: __FLT128_HAS_INFINITY__=1
  define: __FLT_MIN_EXP__=(-125)
  define: __GCC_HAVE_DWARF2_CFI_ASM=1
  define: __x86_64=1
  define: __INT_FAST64_TYPE__=long int
  define: __FLT64_DENORM_MIN__=4.94065645841246544176568792868221372e-324F64
  define: __DBL_MIN__=double(2.22507385850720138309023271733240406e-308L)
  define: __FLT128_EPSILON__=1.92592994438723585305597794258492732e-34F128
  define: __FLT64X_NORM_MAX__=1.18973149535723176502126385303097021e+4932F64x
  define: __SIZEOF_POINTER__=8
  define: __LP64__=1
  define: __DBL_HAS_QUIET_NAN__=1
  define: __FLT32X_EPSILON__=2.22044604925031308084726333618164062e-16F32x
  define: __DECIMAL_BID_FORMAT__=1
  define: __FLT64_MIN_10_EXP__=(-307)
  define: __FLT64X_DECIMAL_DIG__=21
  define: __DEC128_MIN__=1E-6143DL
  define: __REGISTER_PREFIX__=
  define: __UINT16_MAX__=0xffff
  define: __LDBL_HAS_INFINITY__=1
  define: __FLT32_MIN__=1.17549435082228750796873653722224568e-38F32
  define: __UINT8_TYPE__=unsigned char
  define: __FLT_DIG__=6
  define: __NO_INLINE__=1
  define: __DEC_EVAL_METHOD__=2
  define: __DEC128_MAX__=9.999999999999999999999999999999999E6144DL
  define: __FLT_MANT_DIG__=24
  define: __LDBL_DECIMAL_DIG__=21
  define: __VERSION__="11.4.0"
  define: __UINT64_C(c)=c ## UL
  define: _STDC_PREDEF_H=1
  define: __INT_LEAST32_MAX__=0x7fffffff
  define: __GCC_ATOMIC_INT_LOCK_FREE=2
  define: __FLT128_MAX_EXP__=16384
  define: __FLT32_MANT_DIG__=24
  define: __FLOAT_WORD_ORDER__=__ORDER_LITTLE_ENDIAN__
  define: __STDC_IEC_60559_COMPLEX__=201404L
  define: __FLT128_HAS_DENORM__=1
  define: __FLT32_DECIMAL_DIG__=9
  define: __FLT128_DIG__=33
  define: __INT32_C(c)=c
  define: __DEC64_EPSILON__=1E-15DD
  define: __ORDER_PDP_ENDIAN__=3412
  define: __DEC128_MIN_EXP__=(-6142)
  define: __INT_FAST32_TYPE__=long int
  define: __UINT_LEAST16_TYPE__=short unsigned int
  define: __DBL_HAS_DENORM__=1
  define: __SIZE_TYPE__=long unsigned int
  define: __UINT64_MAX__=0xffffffffffffffffUL
  define: __FLT_IS_IEC_60559__=2
  define: __GNUC_WIDE_EXECUTION_CHARSET_NAME="UTF-32LE"
  define: __FLT64X_DIG__=18
  define: __INT8_TYPE__=signed char
  define: __ELF__=1
  define: __GCC_ASM_FLAG_OUTPUTS__=1
  define: __UINT32_TYPE__=unsigned int
  define: __FLT_RADIX__=2
  define: __INT_LEAST16_TYPE__=short int
  define: __LDBL_EPSILON__=1.08420217248550443400745280086994171e-19L
  define: __UINTMAX_C(c)=c ## UL
  define: __k8=1
  define: __FLT32X_MIN__=2.22507385850720138309023271733240406e-308F32x
  define: __SIG_ATOMIC_MAX__=0x7fffffff
  define: __GCC_ATOMIC_WCHAR_T_LOCK_FREE=2
  define: __STDC_IEC_60559_BFP__=201404L
  define: __SIZEOF_PTRDIFF_T__=8
  define: __LDBL_DIG__=18
  define: __FLT64_IS_IEC_60559__=2
  define: __x86_64__=1
  define: __FLT32X_MIN_EXP__=(-1021)
  define: __DEC32_SUBNORMAL_MIN__=0.000001E-95DF
  define: __INT_FAST16_MAX__=0x7fffffffffffffffL
  define: __FLT64_DIG__=15
  define: __UINT_FAST32_MAX__=0xffffffffffffffffUL
  define: __UINT_LEAST64_TYPE__=long unsigned int
  define: __FLT_HAS_QUIET_NAN__=1
  define: __FLT_MAX_10_EXP__=38
  define: __LONG_MAX__=0x7fffffffffffffffL
  define: __FLT64X_HAS_DENORM__=1
  define: __DEC128_SUBNORMAL_MIN__=0.000000000000000000000000000000001E-6143DL
  define: __FLT_HAS_INFINITY__=1
  define: __GNUC_EXECUTION_CHARSET_NAME="UTF-8"
  define: __UINT_FAST16_TYPE__=long unsigned int
  define: __DEC64_MAX__=9.999999999999999E384DD
  define: __INT_FAST32_WIDTH__=64
  define: __CHAR16_TYPE__=short unsigned int
  define: __PRAGMA_REDEFINE_EXTNAME=1
  define: __SIZE_WIDTH__=64
  define: __SEG_FS=1
  define: __INT_LEAST16_MAX__=0x7fff
  define: __DEC64_MANT_DIG__=16
  define: __INT64_MAX__=0x7fffffffffffffffL
  define: __SEG_GS=1
  define: __FLT32_DENORM_MIN__=1.40129846432481707092372958328991613e-45F32
  define: __SIG_ATOMIC_WIDTH__=32
  define: __INT_LEAST64_TYPE__=long int
  define: __INT16_TYPE__=short int
  define: __INT_LEAST8_TYPE__=signed char
  define: __SIZEOF_INT__=4
  define: __DEC32_MAX_EXP__=97
  define: __INT_FAST8_MAX__=0x7f
  define: __FLT128_MAX__=1.18973149535723176508575932662800702e+4932F128
  define: __INTPTR_MAX__=0x7fffffffffffffffL
  define: __FLT64_HAS_QUIET_NAN__=1
  define: __FLT32_MIN_10_EXP__=(-37)
  define: __EXCEPTIONS=1
  define: __PTRDIFF_WIDTH__=64
  define: __LDBL_MANT_DIG__=64
  define: __FLT64_HAS_INFINITY__=1
  define: __FLT64X_MAX__=1.18973149535723176502126385303097021e+4932F64x
  define: __SIG_ATOMIC_MIN__=(-__SIG_ATOMIC_MAX__ - 1)
  define: __code_model_small__=1
  define: __GCC_ATOMIC_LONG_LOCK_FREE=2
  define: __DEC32_MANT_DIG__=7
  define: __k8__=1
  define: __INTPTR_TYPE__=long int
  define: __UINT16_TYPE__=short unsigned int
  define: __WCHAR_TYPE__=int
  define: __pic__=2
  define: __UINTPTR_MAX__=0xffffffffffffffffUL
  define: __INT_FAST64_WIDTH__=64
  define: __INT_FAST64_MAX__=0x7fffffffffffffffL
  define: __GCC_ATOMIC_TEST_AND_SET_TRUEVAL=1
  define: __FLT_NORM_MAX__=3.40282346638528859811704183484516925e+38F
  define: __FLT64X_MAX_EXP__=16384
  define: __UINT_FAST64_TYPE__=long unsigned int
  define: __INT_MAX__=0x7fffffff
  define: __linux__=1
  define: __INT64_TYPE__=long int
  define: __FLT_MAX_EXP__=128
  define: __ORDER_BIG_ENDIAN__=4321
  define: __DBL_MANT_DIG__=53
  define: __SIZEOF_FLOAT128__=16
  define: __INT_LEAST64_MAX__=0x7fffffffffffffffL
  define: __DEC64_MIN__=1E-383DD
  define: __WINT_TYPE__=unsigned int
  define: __UINT_LEAST32_TYPE__=unsigned int
  define: __SIZEOF_SHORT__=2
  define: __FLT32_NORM_MAX__=3.40282346638528859811704183484516925e+38F32
  define: __SSE__=1
  define: __LDBL_MIN_EXP__=(-16381)
  define: __FLT64_MAX__=1.79769313486231570814527423731704357e+308F64
  define: __amd64__=1
  define: __WINT_WIDTH__=32
  define: __INT_LEAST64_WIDTH__=64
  define: __LDBL_MAX_EXP__=16384
  define: __FLT32X_MAX_10_EXP__=308
  define: __SIZEOF_INT128__=16
  define: __FLT64X_IS_IEC_60559__=2
  define: __LDBL_MAX_10_EXP__=4932
  define: __ATOMIC_RELAXED=0
  define: __DBL_EPSILON__=double(2.22044604925031308084726333618164062e-16L)
  define: __FLT128_MIN__=3.36210314311209350626267781732175260e-4932F128
  define: _LP64=1
  define: __UINT8_C(c)=c
  define: __FLT64_MAX_EXP__=1024
  define: __INT_LEAST32_TYPE__=int
  define: __SIZEOF_WCHAR_T__=4
  define: __GNUC_PATCHLEVEL__=0
  define: __FLT128_NORM_MAX__=1.18973149535723176508575932662800702e+4932F128
  define: __FLT64_NORM_MAX__=1.79769313486231570814527423731704357e+308F64
  define: __FLT128_HAS_QUIET_NAN__=1
  define: __INTMAX_MAX__=0x7fffffffffffffffL
  define: __INT_FAST8_TYPE__=signed char
  define: __FLT64X_MIN__=3.36210314311209350626267781732175260e-4932F64x
  define: __STDCPP_THREADS__=1
  define: __GNUC_STDC_INLINE__=1
  define: __FLT64_HAS_DENORM__=1
  define: __FLT32_EPSILON__=1.19209289550781250000000000000000000e-7F32
  define: __DBL_DECIMAL_DIG__=17
  define: __STDC_UTF_32__=1
  define: __INT_FAST8_WIDTH__=8
  define: __FXSR__=1
  define: __FLT32X_MAX__=1.79769313486231570814527423731704357e+308F32x
  define: __DBL_NORM_MAX__=double(1.79769313486231570814527423731704357e+308L)
  define: __BYTE_ORDER__=__ORDER_LITTLE_ENDIAN__
  define: __INTMAX_WIDTH__=64
  define: __UINT64_TYPE__=long unsigned int
  define: __UINT32_C(c)=c ## U
  define: __FLT_DENORM_MIN__=1.40129846432481707092372958328991613e-45F
  define: __FLT128_IS_IEC_60559__=2
  define: __INT8_MAX__=0x7f
  define: __LONG_WIDTH__=64
  define: __PIC__=2
  define: __UINT_FAST32_TYPE__=long unsigned int
  define: __FLT32X_NORM_MAX__=1.79769313486231570814527423731704357e+308F32x
  define: __CHAR32_TYPE__=unsigned int
  define: __FLT_MAX__=3.40282346638528859811704183484516925e+38F
  define: __SSE2__=1
  define: __INT32_TYPE__=int
  define: __SIZEOF_DOUBLE__=8
  define: __FLT_MIN_10_EXP__=(-37)
  define: __FLT64_MIN__=2.22507385850720138309023271733240406e-308F64
  define: __INT_LEAST32_WIDTH__=32
  define: __INTMAX_TYPE__=long int
  define: __DEC128_MAX_EXP__=6145
  define: __FLT32X_HAS_QUIET_NAN__=1
  define: __ATOMIC_CONSUME=1
  define: __GNUC_MINOR__=4
  define: __INT_FAST16_WIDTH__=64
  define: __UINTMAX_MAX__=0xffffffffffffffffUL
  define: __PIE__=2
  define: __FLT32X_DENORM_MIN__=4.94065645841246544176568792868221372e-324F32x
  define: __DBL_MAX_10_EXP__=308
  define: __LDBL_DENORM_MIN__=3.64519953188247460252840593361941982e-4951L
  define: __INT16_C(c)=c
  define: __STDC__=1
  define: __FLT32X_DIG__=15
  define: __PTRDIFF_TYPE__=long int
  define: __ATOMIC_SEQ_CST=5
  define: __FLT32X_MIN_10_EXP__=(-307)
  define: __UINTPTR_TYPE__=long unsigned int
  define: __DEC64_SUBNORMAL_MIN__=0.000000000000001E-383DD
  define: __DEC128_MANT_DIG__=34
  define: __LDBL_MIN_10_EXP__=(-4931)
  define: __SSE_MATH__=1
  define: __SIZEOF_LONG_LONG__=8
  define: __FLT128_DECIMAL_DIG__=36
  define: __GCC_ATOMIC_LLONG_LOCK_FREE=2
  define: __FLT32_HAS_QUIET_NAN__=1
  define: __FLT_DECIMAL_DIG__=9
  define: __UINT_FAST16_MAX__=0xffffffffffffffffUL
  define: __LDBL_NORM_MAX__=1.18973149535723176502126385303097021e+4932L
  define: __GCC_ATOMIC_SHORT_LOCK_FREE=2
  define: __UINT_FAST8_TYPE__=unsigned char
  define: _GNU_SOURCE=1
  define: __ATOMIC_ACQ_REL=4
  define: __ATOMIC_RELEASE=3
  other: --g++
  other: --gnu_version=110400
  stdver: c++11
  intelliSenseMode: linux-gcc-x64
Update IntelliSense time (sec): 0.085
LSP: (received) cpptools/getCodeActions: file:///home/hxc/ctest/xxx/main.cpp (id: 8)
LSP: (invoked) cpptools/getCodeActions: file:///home/hxc/ctest/xxx/main.cpp (id: 8)
LSP: Sending response (id: 8)
LSP: (received) cpptools/getFoldingRanges: file:///home/hxc/ctest/xxx/main.cpp (id: 9)
LSP: (invoked) cpptools/getFoldingRanges: file:///home/hxc/ctest/xxx/main.cpp (id: 9)
LSP: Sending response (id: 9)
LSP: (received) cpptools/didChangeTextEditorSelection
LSP: (invoked) cpptools/didChangeTextEditorSelection
LSP: (received) cpptools/getFoldingRanges: file:///home/hxc/ctest/xxx/main.cpp (id: 10)
LSP: (invoked) cpptools/getFoldingRanges: file:///home/hxc/ctest/xxx/main.cpp (id: 10)
LSP: Sending response (id: 10)
LSP: (received) cpptools/getCodeActions: file:///home/hxc/ctest/xxx/main.cpp (id: 11)
LSP: (invoked) cpptools/getCodeActions: file:///home/hxc/ctest/xxx/main.cpp (id: 11)
LSP: Sending response (id: 11)

Other Extensions

No response

Additional context

My file struct

屏幕截图 2024-07-10 104711

Other files

//===============main.cpp=======================
#include "include/aaa.h"

int main() {
   Point p;
   p.x = 10;
   p.y = 20;

   // Use the function from aaa.cpp
   printPoint(p);

   return 0;
}
//=================aaa.h========================
struct Point{
    int x;
    int y;
};

// Function declaration
void printPoint(const Point& p);
//==========================aaa.cpp======================
#include "aaa.h"
#include <iostream>

// Function definition
void printPoint(const Point& p) {
    std::cout << "Point: (" << p.x << ", " << p.y << ")" << std::endl;
}
//===================settings.json==========================
{
    "C_Cpp.intelliSenseEngine": "default",
    "C_Cpp.intelliSenseCacheSize": 0,
    "C_Cpp.loggingLevel": "Debug"
}

Screenshot

屏幕截图 2024-07-10 104846

@Colengms
Copy link
Collaborator

Hi @ying-hua . Thanks for reporting this. I appreciate the clear repro steps. Unfortunately, I haven't been able to reproduce the behavior you're seeing. Would you be able to provide an example in the form of a zip file or a GitHub repro? That would further reduce the chance of differences in what we're doing to try to repro it. If it still doesn't repro for us, we may need to know more about your system and environment.

Does the issue repro for you if you happen to also have aaa.h open?

Is it possible there could be another aaa.h that it might be finding which does not contain a definition for Point?

@Colengms Colengms self-assigned this Jul 16, 2024
@Colengms Colengms added Language Service more info needed The issue report is not actionable in its current state labels Jul 16, 2024
@ying-hua
Copy link
Author

Hi @Colengms Thank you for your reply. This is my ctest directory.
ctest.zip
I'm sure there are no another aaa.h,because the problem still exists after I rename the files.
Some information might useful:

  • When I open the 3 files (main.cpp, aaa.h, aaa.cpp), this is what I see:
    图片

  • Then I close the file aaa.h and aaa.cpp, it's ok for main.cpp with no problem and ctrl + click works well.

  • Then I reset intelliSense database and rescan the workspace, the squiggles appears again.

@Colengms
Copy link
Collaborator

Hi @ying-hua . Since the scenario you're describing seems very simple, I'm suggesting there may be some additional details we would need to uncover to understand what's going wrong.

Here is a recording of the very fist time opening the ctest folder you provided, on Windows and using WSL remoting to open the folder on an Ubuntu Linux 24.04 instance.

Recording.2024-07-16.180423.mp4

(The extension should operate the same way regardless of whether connected via WSL remoting or SSH remoting. The extension does not aware of how it's being remoted).

This time following your more recent instructions, opening each file, closing some and resetting the database:

Recording.2024-07-16.181228.mp4

Let me know if I've done something different that you.

One detail that confuses me is that your latest image shows squiggles on cout and endl, despite there not being any squiggle on #include <iostream>. I would have assumed that only failure to find that header (which would have its own squiggle) would cause those symbols not to be found by IntelliSense.

The fact that the issue is cleared up when the header is open would suggest it has something to do with IntelliSense failing to resolve includes. Is it possible that this entire folder is under a symbol link in the file system? Perhaps home or your user directory are symbolic links? You may be encountering: #10978

@ying-hua
Copy link
Author

Hi @Colengms .Your operations is the same as mine. I have checked the file structure and there are no symbol link. I also install a vscode in my ubuntu and open the same workspace. The IntelliSense works perfectly. Here is my recording about squiggles on cout and endl. After I open iostream and ostream, the squiggles disappears. This scenario is like what happened in main.cpp. I update my vscode to 1.91.1 but nothing changes.

20240718_163838.mp4

@Colengms
Copy link
Collaborator

Hi @ying-hua .

After opening files to cause the squiggles to clear up, if you do not reset the database, then reload the window, does the issue immediately recur? Or, do those squiggles not appear again until you reset the IntelliSense database?

If you view the output channel when resetting the database, it should show that the main cpptools process is "tag parsing" files. Do you see any errors logged there?

I suspect the problem may be that IntelliSense process (cpptools-srv) doesn't have permission to access files directly on disk, for some reason. When a file is opened for editing, its contents are provided to the extension, which would explain why things automatically get resolved when opening header files. Otherwise, it looks as if header files are found, but their contents not seen by the IntelliSense process.

When remoting, VS Code installs files into a .vscode-server directory. When run locally, it uses a different copy, in a .vscode directory. Perhaps the issue is specific to the installation of the extension under the .vscode-server directory. Could you try manually deleting the extension directory (i.e. ~/extensions/ms-vscode.cpptools-1.20.5-linux-x64) and reinstall the extension from within VS Code? (It will reuse an existing directory's contents if not removed first).

@sean-mcmanus
Copy link
Collaborator

@Colengms I think another user is hitting this from February at #11936 .

@rubiot
Copy link

rubiot commented Jul 19, 2024

Does reverting back to v.1.16.3 fixes the squiggles?

@ying-hua
Copy link
Author

Does reverting back to v.1.16.3 fixes the squiggles?

Thank you! Downgrading the extension to 1.16.3 solve the problem. But I don't know why, I don't change anything else.

@ying-hua
Copy link
Author

Does reverting back to v.1.16.3 fixes the squiggles?

Thank you! Downgrading the extension to 1.16.3 solve the problem. But I don't know why, I don't change anything else.

After I upgrade the extension to 1.20.3, the problem appears again.

@Colengms
Copy link
Collaborator

Re-opening. We are still seeking more information, so we can address this issue. @ying-hua , can you respond to the questions in my previous comment?

@Colengms Colengms reopened this Jul 22, 2024
@ying-hua
Copy link
Author

Re-opening. We are still seeking more information, so we can address this issue. @ying-hua , can you respond to the questions in my previous comment?

OK, I reinstalled the 1.20.5 version. If I connect to ubuntu with the 3 files opened, the squiggles exist. But after I switch window to aaa.h, the squiggles disappear. Here is what happend.

recoed1_20240723_163219.mp4

There is a weird phenomenon. If I close the aaa.h and aaa.cpp and only rescan workspace, the squiggles exist but ctrl + click works.

recoed2_20240723_163544.mp4

Here are 2 logs.

logs1.txt
logs2.txt

I delete ~/.vscode-server/extensions/* and reinstall the extension but it doesn't work.

@Colengms
Copy link
Collaborator

I delete ~/.vscode-server/extensions/* and reinstall the extension but it doesn't work.

Hi @ying-hua . Thanks for confirming that.

Unfortunately, I'm not seeing any clues in your logs. The C/C++ Extension does not itself function differently when remoting. The fact that things work properly when using the system directly, and repros when remoting in with SSH, suggests that the problem is related to VS Code itself. However, the fact that the issue does not occur with prior versions of the C/C++ Extension, seems to point to the extension. I suspect the issue may have something to do with file system permissions for VS Code (and child processes) being somehow different for SSH than when running locally. Since the issue doesn't occur for everyone, it would seem to have something to do with how your system is configured.

Do you have any other VS Code settings not mentioned in this issue? If so, can you provide those? Is there anything else special about the target system that might be different from the default systems I'm using? Do you have another remote system you could test your repro against? You might try remoting into the same remote system from another machine, or remoting into a different system, to see if you can isolate the problem to being specific to the host or the target.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Language Service more info needed The issue report is not actionable in its current state
Projects
Status: Triage
Development

No branches or pull requests

4 participants