microsoft / microsoft/vscode-cpptools
Can't find headers even when in include path
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- TypeScript
- Sterne
- 6.2k
- Forks
- 1.7k
- Ø Merge
- 14 Std. 46 Min.
- Gemergte PRs (30 T.)
- 61
Beschreibung
Bug type: Language Service
I'm edition something on LInux that require the "lib1" headers, it keeps asking to add "/same_path_has_MYPROJECT_INSTALL_PATH/include/lib1" to the include path, over and over, even when "${env:MYPROJECT_INSTALL_PATH}include/lib1" it's already there and points to the same path.
This happens on random files and with random libs on this project. But when i compile the errors go away and sometimes they come back later.
This issue was wrongly reported on the VSCode issues (https://github.com/microsoft/vscode/issues/144830).
I think every information is there and I will add here what's missing.
- OS and Version: Linux x64 5.16.13-arch1-1
- VS Code Version: 1.65.1
- C/C++ Extension Version: 1.8.4
- Other extensions you installed (and if the issue persists after disabling them): C/C++ Extension pack
- If using SSH remote, specify OS of remote machine: N/A
- VSCode sometimes randomly complains about missing paths that are on include path already and even with u add using the "quick fix" the issue doesn't go away
Steps to reproduce
- Have a project with some headers that need a path on the include path
- VSCode sometimes randomly complains about missing paths
Expected behavior
Intellsense should work and find the headers in the include path
Code sample and logs
I don't know if this output are related to this specific issue.
C/C++ output:
IntelliSense process crash detected.
cpptools output:
[Error - 2:41:14 PM] Connection to server got closed. Server will not be restarted.
-
Code sample
-
Configurations in
c_cpp_properties.json
This is an example:
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${env:SystemDrive}/path_to_somewhere/include",
... (more struff)
"${env:MYPROJECT_INSTALL_PATH}/include",
"${workspaceFolder}/**"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"compilerPath": "${env:SystemDrive}\\msys64\\mingw64\\bin\\gcc.exe",
"cStandard": "gnu17",
"cppStandard": "gnu++20",
"intelliSenseMode": "windows-gcc-x64",
"configurationProvider": "ms-vscode.cmake-tools"
},
{
"name": "Linux",
"includePath": [
"${env:MYPROJECT_INSTALL_PATH}include/",
"${env:MYPROJECT_INSTALL_PATH}include/lib1",
"${env:MYPROJECT_INSTALL_PATH}include/lib2",
... (more stuff)
"${workspaceFolder}/**",
"/usr/include/some_stuff/",
"/usr/lib/some_stuff/include",
"/same_path_has_MYPROJECT_INSTALL_PATH/include/lib1"
],
"cStandard": "gnu17",
"cppStandard": "gnu++20",
"intelliSenseMode": "linux-gcc-x64",
"configurationProvider": "ms-vscode.cmake-tools"
}
],
"version": 4
}
- Logs from running
C/C++: Log Diagnosticsfrom the VS Code command palette
Some of the names had to be removed
Seems that every line on the file is being properly translated
-------- Diagnostics - 3/10/2022, 2:47:37 PM
Version: 1.8.4
Current Configuration:
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**",
"${workspaceFolder}/source/server",
"${workspaceFolder}/source/gui",
"/usr/include/glibmm-2.68/",
"/usr/lib/glibmm-2.68/include",
"/usr/include/glib-2.0/",
"/usr/lib/glib-2.0/include",
"/usr/include/gtkmm-4.0",
"/usr/lib/gtkmm-4.0/include",
"/usr/include/sigc++-3.0",
"/usr/lib/sigc++-3.0/include",
"/usr/lib/pangomm-2.48/include",
"/usr/include/pangomm-2.48",
"/usr/include/pango-1.0",
"/usr/include/harfbuzz",
"/usr/include/giomm-2.68",
"/usr/lib/giomm-2.68/include",
"/usr/include/cairomm-1.16",
"/usr/lib/cairomm-1.16/include",
"/usr/include/cairo",
"/usr/include/freetype2",
"/usr/include/gtk-4.0",
"/usr/include/gdk-pixbuf-2.0",
"/usr/include/graphene-1.0",
"/usr/lib/graphene-1.0/include"
],
"cStandard": "gnu17",
"cppStandard": "gnu++20",
"intelliSenseMode": "linux-gcc-x64",
"configurationProvider": "ms-vscode.cmake-tools",
"compilerPathIsExplicit": false,
"cStandardIsExplicit": true,
"cppStandardIsExplicit": true,
"intelliSenseModeIsExplicit": true,
"macFrameworkPath": [],
"compilerArgs": [],
"mergeConfigurations": false,
"compilerPath": "/usr/bin/gcc",
"browse": {
"path": [
"${workspaceFolder}/**",
"${workspaceFolder}/source/server",
"${workspaceFolder}/source/gui",
"/usr/include/glibmm-2.68/",
"/usr/lib/glibmm-2.68/include",
"/usr/include/glib-2.0/",
"/usr/lib/glib-2.0/include",
"/usr/include/gtkmm-4.0",
"/usr/lib/gtkmm-4.0/include",
"/usr/include/sigc++-3.0",
"/usr/lib/sigc++-3.0/include",
"/usr/lib/pangomm-2.48/include",
"/usr/include/pangomm-2.48",
"/usr/include/pango-1.0",
"/usr/include/harfbuzz",
"/usr/include/giomm-2.68",
"/usr/lib/giomm-2.68/include",
"/usr/include/cairomm-1.16",
"/usr/lib/cairomm-1.16/include",
"/usr/include/cairo",
"/usr/include/freetype2",
"/usr/include/gtk-4.0",
"/usr/include/gdk-pixbuf-2.0",
"/usr/include/graphene-1.0",
"/usr/lib/graphene-1.0/include",
],
"limitSymbolsToIncludedHeaders": true
}
}
Custom browse configuration:
{
"browsePath": [
"/usr/include/botan-2",
"/usr/include/gtkmm-4.0",
"/usr/lib/gtkmm-4.0/include",
"/usr/include/giomm-2.68",
"/usr/lib/giomm-2.68/include",
"/usr/include/glib-2.0",
"/usr/lib/glib-2.0/include",
"/usr/include/sysprof-4",
"/usr/include/libmount",
"/usr/include/blkid",
"/usr/include/glibmm-2.68",
"/usr/lib/glibmm-2.68/include",
"/usr/include/sigc++-3.0",
"/usr/lib/sigc++-3.0/include",
"/usr/include/gtk-4.0",
"/usr/include/pango-1.0",
"/usr/include/harfbuzz",
"/usr/include/freetype2",
"/usr/include/libpng16",
"/usr/include/fribidi",
"/usr/include/cairo",
"/usr/include/lzo",
"/usr/include/pixman-1",
"/usr/include/gdk-pixbuf-2.0",
"/usr/include/graphene-1.0",
"/usr/lib/graphene-1.0/include",
"/usr/include/gio-unix-2.0",
"/usr/include/cairomm-1.16",
"/usr/lib/cairomm-1.16/include",
"/usr/include/pangomm-2.48",
"/usr/lib/pangomm-2.48/include",
"/usr/include/gtk-4.0/unix-print",
"/usr/include/pgm-5.3"
],
"standard": "gnu++20",
"compilerPath": "/usr/bin/c++",
"compilerArgs": [
"-g",
"-fPIC",
"-Werror",
"-Wall",
"-Wextra",
"-std=gnu++20"
]
}
Custom configurations:
[ /home/user/project/code.cpp ]
{
"defines": [],
"standard": "gnu++20",
"includePath": [
"/usr/include/botan-2",
"/usr/include/gtkmm-4.0",
"/usr/lib/gtkmm-4.0/include",
"/usr/include/giomm-2.68",
"/usr/lib/giomm-2.68/include",
"/usr/include/glib-2.0",
"/usr/lib/glib-2.0/include",
"/usr/include/sysprof-4",
"/usr/include/libmount",
"/usr/include/blkid",
"/usr/include/glibmm-2.68",
"/usr/lib/glibmm-2.68/include",
"/usr/include/sigc++-3.0",
"/usr/lib/sigc++-3.0/include",
"/usr/include/gtk-4.0",
"/usr/include/pango-1.0",
"/usr/include/harfbuzz",
"/usr/include/freetype2",
"/usr/include/libpng16",
"/usr/include/fribidi",
"/usr/include/cairo",
"/usr/include/lzo",
"/usr/include/pixman-1",
"/usr/include/gdk-pixbuf-2.0",
"/usr/include/graphene-1.0",
"/usr/lib/graphene-1.0/include",
"/usr/include/gio-unix-2.0",
"/usr/include/cairomm-1.16",
"/usr/lib/cairomm-1.16/include",
"/usr/include/pangomm-2.48",
"/usr/lib/pangomm-2.48/include",
"/usr/include/gtk-4.0/unix-print",
"/usr/include/pgm-5.3"
],
"compilerPath": "/usr/bin/c++",
"compilerArgs": [
"-g",
"-Werror",
"-Wall",
"-Wextra",
"-std=gnu++20"
]
}
Translation Unit Mappings:
[ /home/user/projects/code.cpp ]:
/home/user/projects/code.hh *
/home/user/projects/code.cpp
Translation Unit Configurations:
[ /home/user/projects/code.cpp ]:
Process ID: 7174
Memory Usage: 373 MB
Compiler Path: /usr/bin/c++
Includes:
/usr/include/botan-2
/usr/include/gtkmm-4.0
/usr/lib/gtkmm-4.0/include
/usr/include/giomm-2.68
/usr/lib/giomm-2.68/include
/usr/include/glib-2.0
/usr/lib/glib-2.0/include
/usr/include/sysprof-4
/usr/include/libmount
/usr/include/blkid
/usr/include/glibmm-2.68
/usr/lib/glibmm-2.68/include
/usr/include/sigc++-3.0
/usr/lib/sigc++-3.0/include
/usr/include/gtk-4.0
/usr/include/pango-1.0
/usr/include/harfbuzz
/usr/include/freetype2
/usr/include/libpng16
/usr/include/fribidi
/usr/include/cairo
/usr/include/lzo
/usr/include/pixman-1
/usr/include/gdk-pixbuf-2.0
/usr/include/graphene-1.0
/usr/lib/graphene-1.0/include
/usr/include/gio-unix-2.0
/usr/include/cairomm-1.16
/usr/lib/cairomm-1.16/include
/usr/include/pangomm-2.48
/usr/lib/pangomm-2.48/include
/usr/include/gtk-4.0/unix-print
/usr/include/pgm-5.3
/usr/include/c++/11.2.0
/usr/include/c++/11.2.0/x86_64-pc-linux-gnu
/usr/include/c++/11.2.0/backward
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/include
/usr/local/include
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/include-fixed
/usr/include
Standard Version: c++20
IntelliSense Mode: linux-gcc-x64
Other Flags:
--g++
--gnu_version=110200
Total Memory Usage: 373 MB
------- Workspace parsing diagnostics -------
Number of files discovered (not excluded): 40568
Number of files parsed: 4511
- Logs from the language server logging
Screenshots
Additional context
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne mit der bereitgestellten c_cpp_properties.json und der Ausgabe von C/C++: Log Diagnostics und reproduziere anschließend die Meldungen zu fehlenden Headern sowie den Absturz des IntelliSense-Prozesses unter Linux. Erledigt ist die Aufgabe, wenn bereits im Include-Pfad vorhandene Header konsistent aufgelöst werden und IntelliSense nicht mehr abstürzt oder die Konfiguration verliert.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- cpp, vscode
- Bereich
- tooling
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 25/100