microsoft / microsoft/vscode-cpptools

language server crash repeatedly probably because of the database file

Offen
#12,937 5 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

bug Language Service reliability
Vorherrschende Sprache
TypeScript
Sterne
6.2k
Forks
1.7k
Ø Merge
14 Std. 46 Min.
Gemergte PRs (30 T.)
61

Beschreibung

Environment
  • OS and Version: macOS Sequoia 15.1
  • VS Code Version: 1.95.1 (Universal) Commit: 65edc4939843c90c34d61f4ce11704f09d3e5cb6
  • C/C++ Extension Version: v1.22.11
  • If using SSH remote, specify OS of remote machine: Ubuntu 22.04.4 LTS
Bug Summary and Steps to Reproduce

Bug Summary:
language server crashes

Steps to reproduce:

  1. it reproduces randomly while going through c/cpp files in the project

Expected behavior:
language server doesn't crash

the issue is averted if following these instructions and changing the value of databaseFilename: https://github.com/microsoft/vscode-cpptools/issues/2296#issuecomment-406453073

Configuration and Logs

Debug logs:
this lines repeats a lot, can't share more because of company policy

Unable to add file to database, error = 0x8064000b: ...

crash call stack:

browse_engine::query_translation_unit_source(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*) (Unknown Source:0)
intellisense_client_manager::find_existing_intellisense_client(msvc::locked_object<intellisense_client_manager::maps, std::recursive_mutex, std::unique_lock> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool, bool, bool, bool&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, bool&, bool&) (Unknown Source:0)
intellisense_client_manager::acquire_intellisense_client(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, acquire_intellisense_client_options const&, std::function<void (intellisense_client_reference&&)>&&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::function<bool ()> const&)::{lambda()#2}::operator()() (Unknown Source:0)
msvc::thread_manager_t::do_work(unsigned int) (Unknown Source:0)
msvc::thread_helper_t::thread_entry(void*) (Unknown Source:0)
libc.so!start (Unknown Source:0)
libc.so!__clone (Unknown Source:0)
[Unknown/Just-In-Time compiled code] (Unknown Source:0)

partial content of ~/.vscode-server/data/Machine/settings.json
some values redacted

{
    // ...
    "C_Cpp.default.compilerPath": "/usr/bin/gcc",
    "C_Cpp.default.cStandard": "gnu17",
    "C_Cpp.default.cppStandard": "gnu++17",
    "C_Cpp.default.defines": ["<PROJECT_SPECIFIC_DEFINE>"],
    "C_Cpp.default.includePath": [
        "${env:HOME}/<SOME_SDK_PATH>",
        "${env:HOME}/<SOME_SDK_PATH>/include",
        "${workspaceFolder}/**",
        "${workspaceFolder}/include",
        "${workspaceFolder}/src",
        // 40 lines of different folders under ${workspaceFolder}
    ],
    "C_Cpp.default.forcedInclude": [
        // 4 .h files from some includes under ${workspaceFolder}
    ],
Other Extensions

No response

Additional context

No response

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne damit, den Absturz beim Durchsuchen von C/C++-Dateien zu reproduzieren und die wiederholt auftretende Meldung “Unable to add file to database” zusammen mit dem bereitgestellten Call Stack zu prüfen. Erledigt ist die Aufgabe, wenn der Language Server in diesem Szenario nicht mehr abstürzt und der Datenbankfehler behoben ist; im Bericht wird keine Quelldatei und kein Test identifiziert.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
cpp
Bereich
devtools
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.