microsoft / vscode-cpptools

Official repository for the Microsoft C/C++ extension for VS Code.
Other
5.52k stars 1.55k forks source link

Go to Symbol in File is slow #4934

Closed HackerBaloo closed 4 years ago

HackerBaloo commented 4 years ago

attached.zip Type: LanguageService What I run

To Reproduce I have a Workspace with 87000 files, 12500 of these are cpp/h files

  1. I have my Workspace open
  2. Ctrl+P to open SemanticModule.cpp (for example, I have the same issue with all files)
  3. I use my hotkey for: "Go to Symbol in File" aka "workbench.action.gotoSymbol"
  4. It takes 56 seconds to show the list of symbols (on my CoreI9 with 64 GB of memory)
  5. next time it shows up directly
  6. add an empty row in the file
  7. goto point 3 above

Expected behavior It shouldn't take much longer to find the symbols in a file than it takes to compile the file.

Additional context I tried turning on logging like this, but didn't get any output. ("C_Cpp.loggingLevel": "Debug" in settings.json). But I'm very willing to provide more information.

HackerBaloo commented 4 years ago

Well that funny, I think I found a workaround just moments after submitting this issue, I had both a compile_commands.json and as fallback (I thought) I also have a rather wide includePath. If I removed the includePath it just take a couple of seconds.

sean-mcmanus commented 4 years ago

The includePath might be copied over to the browse.path setting, which is used to generate global symbols and a filename cache -- the initial one-time slowness could be caused by the generation of these caches -- a similar issue was reported at https://github.com/microsoft/vscode-cpptools/issues/1127 .

I don't understand steps 6-7...are you saying the slowness repeats after those steps? This is a one-time delay, right?

HackerBaloo commented 4 years ago

Yes it the slowness was repeated after every time I added or removed an empty row in the file and then ran the command again.

sean-mcmanus commented 4 years ago

Sounds like you're hitting a different issue from the other one. Did you see logging in the C/C++ pane: see https://code.visualstudio.com/docs/cpp/enable-logging-cpp ? You can also run C/C++: Log Diagnostics to get info on the IntelliSense settings used by the current translation unit.

The issue didn't repro for me with just that 1 file. It's possible the processing is stuck due to IntelliSense blocking our input queue or tag parsing.

HackerBaloo commented 4 years ago

Unfortunately I can't share all of my code, but I guess that the amount of files targeted by my include statements must matter. I will try the logging instructions.

On Fri, 7 Feb 2020 at 21:57, Sean McManus notifications@github.com wrote:

Sounds like you're hitting a different issue from the other one. Did you see logging in the C/C++ pane: see https://code.visualstudio.com/docs/cpp/enable-logging-cpp ? You can also run C/C++: Log Diagnostics to get info on the IntelliSense settings used by the current translation unit.

The issue didn't repro for me with just that 1 file. It's possible the processing is stuck due to IntelliSense blocking our input queue or tag parsing.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/microsoft/vscode-cpptools/issues/4934?email_source=notifications&email_token=AAA5YCWGHIBT52S43EA4AQ3RBXDLBA5CNFSM4KRKSHU2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOELESN6Y#issuecomment-583608059, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAA5YCSH7VDPNW2U5J4KN73RBXDLBANCNFSM4KRKSHUQ .

--


Björn Carlsson Telefon 0704-10 69 77 Epost mailto://b.r.carlsson@gmail.com Blog http://hackerbaloo.blogspot.com/


HackerBaloo commented 4 years ago

output.zip Well unfortunately, the log output doesnt tell the true story.

When I add an empty row and opens Go to Symbols in file, the log shows this;

sending 1 changes to server
cpptools/cpptools_finishUpdateSquiggles
Error squiggle count: 0
Update IntelliSense time (sec): 0.742
Database safe to open

but the progressbar continues 50 more seconds until the content is shown-

HackerBaloo commented 4 years ago

And today when I test again my workaround to remove the includePath setting doesn help anymore,

HackerBaloo commented 4 years ago

BTW, what did you mean by: "You can also run C/C++: Log Diagnostics"?

HackerBaloo commented 4 years ago

I tried to move: .config/Code/User/workspaceStorage/4f224539fa72c678bc070c0e1ef40450/ms-vscode.cpptools/.browse.VC.db Which was 3.9 GB. And after that it seems to work better. But of course I don't know if it is temporary. Are you interested in my 3.9 GB file?

HackerBaloo commented 4 years ago

After an afternoon of work the size of .browse.VC.db is still below 80 Mb, and the editor is still quick.

sean-mcmanus commented 4 years ago

The C/C++: Log Diagnostics command can be run via the Command Palette in VS Code.

Yeah, if your database is 3.9 GB that could cause performance issues when we do operations that span the entire workspace.

We don't need your database file to diagnose the performance issue.

HackerBaloo commented 4 years ago

Well the output of the Log Diagnostics command didn't give much new information I think: -------- Diagnostics - 2/11/2020, 8:12:30 AM Version: 0.26.3 Current Configuration: { "name": "Linux", "browse.path": [ "${workspaceFolder}/", "/home/bjornca/src/develop/artifacts/" ], "defines": [], "compileCommands": "${workspaceFolder}/intermediate/compile_commands.json", "compilerPath": "/usr/bin/clang++-6.0", "cStandard": "c11", "cppStandard": "c++14", "compilerArgs": [], "browse": { "limitSymbolsToIncludedHeaders": true } } No active translation units.

On Mon, 10 Feb 2020 at 21:08, Sean McManus notifications@github.com wrote:

The C/C++: Log Diagnostics command can be run via the Command Palette in VS Code.

Yeah, if your database is 3.9 GB that could cause performance issues when we do operations that span the entire workspace.

We don't need your database file to diagnose the performance issue.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/microsoft/vscode-cpptools/issues/4934?email_source=notifications&email_token=AAA5YCRKXTLBTR47PSWEMKLRCGX2RA5CNFSM4KRKSHU2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOELKCMRQ#issuecomment-584328774, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAA5YCUHUE4HJ5ZR2O4SLJDRCGX2RANCNFSM4KRKSHUQ .

--


Björn Carlsson Telefon 0704-10 69 77 Epost mailto://b.r.carlsson@gmail.com Blog http://hackerbaloo.blogspot.com/


HackerBaloo commented 4 years ago

Just removing the database and letting it rebuild by itself was not a very good idea apparently, it makes goto symbol in file fast, but then C_Cpp.SwitchHeaderSource doesnt work until I first manually open the file I want to switch to. If I put back the big database the h/cpp switch works again, but then it is to painful finding the method I'm looking for. 😖 Can I try to rebuild the database perhaps to check if the reason might be that it has been corrupted in some way perhaps?

On Tue, 11 Feb 2020 at 08:14, Björn Carlsson b.r.carlsson@gmail.com wrote:

Well the output of the Log Diagnostics command didn't give much new information I think: -------- Diagnostics - 2/11/2020, 8:12:30 AM Version: 0.26.3 Current Configuration: { "name": "Linux", "browse.path": [ "${workspaceFolder}/", "/home/bjornca/src/develop/artifacts/" ], "defines": [], "compileCommands": "${workspaceFolder}/intermediate/compile_commands.json", "compilerPath": "/usr/bin/clang++-6.0", "cStandard": "c11", "cppStandard": "c++14", "compilerArgs": [], "browse": { "limitSymbolsToIncludedHeaders": true } } No active translation units.

On Mon, 10 Feb 2020 at 21:08, Sean McManus notifications@github.com wrote:

The C/C++: Log Diagnostics command can be run via the Command Palette in VS Code.

Yeah, if your database is 3.9 GB that could cause performance issues when we do operations that span the entire workspace.

We don't need your database file to diagnose the performance issue.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/microsoft/vscode-cpptools/issues/4934?email_source=notifications&email_token=AAA5YCRKXTLBTR47PSWEMKLRCGX2RA5CNFSM4KRKSHU2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOELKCMRQ#issuecomment-584328774, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAA5YCUHUE4HJ5ZR2O4SLJDRCGX2RANCNFSM4KRKSHUQ .

--


Björn Carlsson Telefon 0704-10 69 77 Epost mailto://b.r.carlsson@gmail.com Blog http://hackerbaloo.blogspot.com/


--


Björn Carlsson Telefon 0704-10 69 77 Epost mailto://b.r.carlsson@gmail.com Blog http://hackerbaloo.blogspot.com/


HackerBaloo commented 4 years ago

Well, I tried what I think is the official way, "C/C++: Reset Intellisence Database" and then "C/C++: Rescan Workspace" but then C_Cpp.SwitchHeaderSource still doesn't work. Should I open a new issue on that?

On Tue, 11 Feb 2020 at 08:26, Björn Carlsson b.r.carlsson@gmail.com wrote:

Just removing the database and letting it rebuild by itself was not a very good idea apparently, it makes goto symbol in file fast, but then C_Cpp.SwitchHeaderSource doesnt work until I first manually open the file I want to switch to. If I put back the big database the h/cpp switch works again, but then it is to painful finding the method I'm looking for. 😖 Can I try to rebuild the database perhaps to check if the reason might be that it has been corrupted in some way perhaps?

On Tue, 11 Feb 2020 at 08:14, Björn Carlsson b.r.carlsson@gmail.com wrote:

Well the output of the Log Diagnostics command didn't give much new information I think: -------- Diagnostics - 2/11/2020, 8:12:30 AM Version: 0.26.3 Current Configuration: { "name": "Linux", "browse.path": [ "${workspaceFolder}/", "/home/bjornca/src/develop/artifacts/" ], "defines": [], "compileCommands": "${workspaceFolder}/intermediate/compile_commands.json", "compilerPath": "/usr/bin/clang++-6.0", "cStandard": "c11", "cppStandard": "c++14", "compilerArgs": [], "browse": { "limitSymbolsToIncludedHeaders": true } } No active translation units.

On Mon, 10 Feb 2020 at 21:08, Sean McManus notifications@github.com wrote:

The C/C++: Log Diagnostics command can be run via the Command Palette in VS Code.

Yeah, if your database is 3.9 GB that could cause performance issues when we do operations that span the entire workspace.

We don't need your database file to diagnose the performance issue.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/microsoft/vscode-cpptools/issues/4934?email_source=notifications&email_token=AAA5YCRKXTLBTR47PSWEMKLRCGX2RA5CNFSM4KRKSHU2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOELKCMRQ#issuecomment-584328774, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAA5YCUHUE4HJ5ZR2O4SLJDRCGX2RANCNFSM4KRKSHUQ .

--


Björn Carlsson Telefon 0704-10 69 77 Epost mailto://b.r.carlsson@gmail.com Blog http://hackerbaloo.blogspot.com/


--


Björn Carlsson Telefon 0704-10 69 77 Epost mailto://b.r.carlsson@gmail.com Blog http://hackerbaloo.blogspot.com/


--


Björn Carlsson Telefon 0704-10 69 77 Epost mailto://b.r.carlsson@gmail.com Blog http://hackerbaloo.blogspot.com/


sean-mcmanus commented 4 years ago

Log Diagnostics shows "no translation unit" -- that means no IntelliSense is running. Do you have the source file active?

If SwitchHeaderSource (or Go to Def or Find All Refs) doesn't work until you open a file, it means the file wasn't parsed, probably because it wasn't included from the includePath (or browse.path) setting. You can use files.exclude to exclude folders you don't need to make the database smaller.

You can also set C_Cpp.loggingLevel to view diagnostic info in the C/C++ pane on what files are getting "tag parsed".

You could file a new issue if you want.

sean-mcmanus commented 4 years ago

Also, if you're using compile_commands.json, it will try to get includePaths from that, but you may need to set your browse.path setting to include all the folders that you want to be parsed for global symbols (see https://github.com/microsoft/vscode-cpptools/issues/1715 ).

HackerBaloo commented 4 years ago

A new log diagnostics with the right file selected: -------- Diagnostics - 2/12/2020, 8:48:31 AM Version: 0.26.3 Current Configuration: { "name": "Linux", "browse.path": [ "${workspaceFolder}/", "/home/bjornca/src/develop/artifacts/" ], "defines": [], "compileCommands": "${workspaceFolder}/intermediate/compile_commands.json", "compilerPath": "/usr/bin/clang++-6.0", "cStandard": "c11", "cppStandard": "c++14", "compilerArgs": [], "browse": { "limitSymbolsToIncludedHeaders": true } } Translation Unit Mappings: [ /home/bjornca/src/develop/server/nsp_servers/csc/semantics/source/SemanticModule.cpp ]: /home/bjornca/src/develop/server/nsp_servers/csc/semantics/source/SemanticModule.cpp Translation Unit Configurations: [ /home/bjornca/src/develop/server/nsp_servers/csc/semantics/source/SemanticModule.cpp ]: Process ID: 24644 Memory Usage: 279 MB Compiler Path: /usr/bin/clang++-6.0 Includes: /home/bjornca/src/develop/server/intermediate/LinuxES_debug/include /home/bjornca/src/develop/server/include /home/bjornca/src/develop/server/nsp_servers/csc/semantics/include /home/bjornca/src/develop/server/nsp_servers/csc/semantics/interface /home/bjornca/src/develop/server/nsp_servers/csc/LonTypes/interface /home/bjornca/src/develop/server/nsp_servers/csc/accountaccess/interface /home/bjornca/src/develop/server/nsp_servers/csc/alarmmanager/alarmlib/interface /home/bjornca/src/develop/server/nsp_servers/csc/alarmmanager/interface /home/bjornca/src/develop/server/nsp_servers/csc/amfmsghub/interface /home/bjornca/src/develop/server/nsp_servers/csc/applicationscheduler/include /home/bjornca/src/develop/server/nsp_servers/csc/applicationscheduler/interface /home/bjornca/src/develop/server/nsp_servers/csc/archivemanager/interface /home/bjornca/src/develop/server/nsp_servers/csc/asyncserver/interface /home/bjornca/src/develop/server/nsp_servers/csc/barmanager/interface /home/bjornca/src/develop/server/nsp_servers/csc/changesetmanager/SyncMgr/interface /home/bjornca/src/develop/server/nsp_servers/csc/changesetmanager/interface /home/bjornca/src/develop/server/nsp_servers/csc/comlvalidator/interface /home/bjornca/src/develop/server/nsp_servers/csc/configurationstoragemanager/include /home/bjornca/src/develop/server/nsp_servers/csc/configurationstoragemanager/interface /home/bjornca/src/develop/server/nsp_servers/csc/cspclient/interface /home/bjornca/src/develop/server/nsp_servers/csc/cspserver/interface /home/bjornca/src/develop/server/nsp_servers/csc/cwsserver/include /home/bjornca/src/develop/server/nsp_servers/csc/cwsserver/interface /home/bjornca/src/develop/server/nsp_servers/csc/defaultmodule/interface /home/bjornca/src/develop/server/nsp_servers/csc/eventmanager/interface /home/bjornca/src/develop/server/nsp_servers/csc/impex/customUpgrade/interface /home/bjornca/src/develop/server/nsp_servers/csc/impex/impexBuild/interface /home/bjornca/src/develop/server/nsp_servers/csc/impex/impexExtract/interface /home/bjornca/src/develop/server/nsp_servers/csc/impex/impexExtractDecorate/interface /home/bjornca/src/develop/server/nsp_servers/csc/impex/impexInterpretDecorate/interface /home/bjornca/src/develop/server/nsp_servers/csc/impex/impexParse/interface /home/bjornca/src/develop/server/nsp_servers/csc/impex/impexSerialize/interface /home/bjornca/src/develop/server/nsp_servers/csc/impex/impexValidate/interface /home/bjornca/src/develop/server/nsp_servers/csc/impex/interface /home/bjornca/src/develop/server/nsp_servers/csc/impexmanager/interface /home/bjornca/src/develop/server/nsp_servers/csc/interface /home/bjornca/src/develop/server/nsp_servers/csc/licensemanager/interface /home/bjornca/src/develop/server/nsp_servers/csc/logmanager/interface /home/bjornca/src/develop/server/nsp_servers/csc/moduleregistry/include /home/bjornca/src/develop/server/nsp_servers/csc/moduleregistry/interface /home/bjornca/src/develop/server/nsp_servers/csc/mrf/interface /home/bjornca/src/develop/server/nsp_servers/csc/objectmanager/interface /home/bjornca/src/develop/server/nsp_servers/csc/persistentmemorymanager/interface /home/bjornca/src/develop/server/nsp_servers/csc/pluginmanager/interface /home/bjornca/src/develop/server/nsp_servers/csc/portaccessmanager/interface /home/bjornca/src/develop/server/nsp_servers/csc/progressmanager/interface /home/bjornca/src/develop/server/nsp_servers/csc/runtimedbmanager/interface /home/bjornca/src/develop/server/nsp_servers/csc/searchmanager/interface /home/bjornca/src/develop/server/nsp_servers/csc/securitymanager/interface /home/bjornca/src/develop/server/nsp_servers/csc/servercontextmanager/interface /home/bjornca/src/develop/server/nsp_servers/csc/sessionmgr/interface /home/bjornca/src/develop/server/nsp_servers/csc/systemservicesmanager/interface /home/bjornca/src/develop/server/nsp_servers/csc/transactionmanager/interface /home/bjornca/src/develop/server/nsp_servers/csc/unitconverter/interface /home/bjornca/src/develop/server/nsp_servers/csc/util/interface /home/bjornca/src/develop/server/nsp_servers/csc/wblserver/wbl_proto_files/interface /home/bjornca/src/develop/server/nsp_servers/csc/wblserver/wbl_proto_files/interface/nsp /home/bjornca/src/develop/server/nsp_servers/csc/webserver/interface /home/bjornca/src/develop/server/nsp_servers/csc/webserver/jsonlib_deprecated/interface /home/bjornca/src/develop/server/nsp_servers/csc/webserver/jsonserver/interface /home/bjornca/src/develop/server/nsp_servers/csc/zoningmanager/interface /home/bjornca/src/develop/server/nsp_servers/interface /home/bjornca/src/develop/server/utilities/ASN.1/CPP/interface /home/bjornca/src/develop/server/utilities/ErrorMgr/interface /home/bjornca/src/develop/server/utilities/JSON/interface /home/bjornca/src/develop/server/utilities/NspLogger/interface /home/bjornca/src/develop/server/utilities/NspTCP/interface /home/bjornca/src/develop/server/utilities/authentication/interface /home/bjornca/src/develop/server/utilities/coml/interface /home/bjornca/src/develop/server/utilities/comltranslator/interface /home/bjornca/src/develop/server/utilities/comlxml/interface /home/bjornca/src/develop/server/utilities/contract/interface /home/bjornca/src/develop/server/utilities/cos/interface /home/bjornca/src/develop/server/utilities/criticalsection/interface /home/bjornca/src/develop/server/utilities/datastructures/interface /home/bjornca/src/develop/server/utilities/interface /home/bjornca/src/develop/server/utilities/msg/interface /home/bjornca/src/develop/server/utilities/netcom/CSP_Packets/interface /home/bjornca/src/develop/server/utilities/netcom/interface /home/bjornca/src/develop/server/utilities/osutils/interface /home/bjornca/src/develop/server/utilities/security/interface /home/bjornca/src/develop/server/utilities/serverapplication/interface /home/bjornca/src/develop/server/utilities/session/interface /home/bjornca/src/develop/server/utilities/sha/interface /home/bjornca/src/develop/server/utilities/string/interface /home/bjornca/src/develop/artifacts/external/boost/deliverables/interface /home/bjornca/src/develop/artifacts/external/exprtk/deliverables/interface /home/bjornca/src/develop/artifacts/external/flexnetembedded/deliverables/interface /home/bjornca/src/develop/artifacts/external/gperftools/deliverables/interface /home/bjornca/src/develop/artifacts/external/gsoap/deliverables/interface /home/bjornca/src/develop/artifacts/external/poco/deliverables/interface /home/bjornca/src/develop/artifacts/external/protobufcpp/deliverables/interface /home/bjornca/src/develop/artifacts/external/rapidjson/include /home/bjornca/src/develop/artifacts/external/snmp/deliverables/interface /home/bjornca/src/develop/artifacts/external/sqlite3/deliverables/interface /home/bjornca/src/develop/artifacts/external/sysroots/linux_pc_64_gcc-7.3.0/opt/sbo/include /usr/include/c++/8 /usr/include/x86_64-linux-gnu/c++/8 /usr/include/c++/8/backward /usr/lib/llvm-6.0/lib/clang/6.0.0/include /usr/local/include /usr/include/x86_64-linux-gnu /usr/include Defines: _DEBUG semantics_EXPORTS BOOST_ALL_NO_LIB BOOST_CHRONO_DYN_LINK BOOST_SYSTEM_DYN_LINK BOOST_THREAD_DYN_LINK POCO_NO_AUTOMATIC_LIBS PROTOBUF_FINAL= WITH_COOKIES WITH_NONAMESPACES WITH_OPENSSL WITH_PURE_VIRTUAL PROTOBUF_FINAL= Standard Version: c++14 IntelliSense Mode: clang-x64 Other Flags: --clang --clang_version=60000 Total Memory Usage: 279 MB

On Tue, 11 Feb 2020 at 20:33, Sean McManus notifications@github.com wrote:

Also, if you're using compile_commands.json, it will try to get includePaths from that, but you may need to set your browse.path setting to include all the folders that you want to be parsed for global symbols (see

1715 https://github.com/microsoft/vscode-cpptools/issues/1715 ).

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/microsoft/vscode-cpptools/issues/4934?email_source=notifications&email_token=AAA5YCSHFTWX2DKZYH2YXMTRCL4RJA5CNFSM4KRKSHU2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOELNYJDY#issuecomment-584811663, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAA5YCQQXBVUVZUJKJG7TADRCL4RJANCNFSM4KRKSHUQ .

--


Björn Carlsson Telefon 0704-10 69 77 Epost mailto://b.r.carlsson@gmail.com Blog http://hackerbaloo.blogspot.com/


HackerBaloo commented 4 years ago

And the h files I want to switch to are definitely included in the include paths. Both from compile_commands.json and from browse.path. And I don't get any squiggles for bad includes.

On Wed, 12 Feb 2020 at 08:49, Björn Carlsson b.r.carlsson@gmail.com wrote:

A new log diagnostics with the right file selected: -------- Diagnostics - 2/12/2020, 8:48:31 AM Version: 0.26.3 Current Configuration: { "name": "Linux", "browse.path": [ "${workspaceFolder}/", "/home/bjornca/src/develop/artifacts/" ], "defines": [], "compileCommands": "${workspaceFolder}/intermediate/compile_commands.json", "compilerPath": "/usr/bin/clang++-6.0", "cStandard": "c11", "cppStandard": "c++14", "compilerArgs": [], "browse": { "limitSymbolsToIncludedHeaders": true } } Translation Unit Mappings: [ /home/bjornca/src/develop/server/nsp_servers/csc/semantics/source/SemanticModule.cpp ]:

/home/bjornca/src/develop/server/nsp_servers/csc/semantics/source/SemanticModule.cpp Translation Unit Configurations: [ /home/bjornca/src/develop/server/nsp_servers/csc/semantics/source/SemanticModule.cpp ]: Process ID: 24644 Memory Usage: 279 MB Compiler Path: /usr/bin/clang++-6.0 Includes: /home/bjornca/src/develop/server/intermediate/LinuxES_debug/include /home/bjornca/src/develop/server/include /home/bjornca/src/develop/server/nsp_servers/csc/semantics/include /home/bjornca/src/develop/server/nsp_servers/csc/semantics/interface /home/bjornca/src/develop/server/nsp_servers/csc/LonTypes/interface /home/bjornca/src/develop/server/nsp_servers/csc/accountaccess/interface

/home/bjornca/src/develop/server/nsp_servers/csc/alarmmanager/alarmlib/interface /home/bjornca/src/develop/server/nsp_servers/csc/alarmmanager/interface /home/bjornca/src/develop/server/nsp_servers/csc/amfmsghub/interface

/home/bjornca/src/develop/server/nsp_servers/csc/applicationscheduler/include

/home/bjornca/src/develop/server/nsp_servers/csc/applicationscheduler/interface /home/bjornca/src/develop/server/nsp_servers/csc/archivemanager/interface /home/bjornca/src/develop/server/nsp_servers/csc/asyncserver/interface /home/bjornca/src/develop/server/nsp_servers/csc/barmanager/interface

/home/bjornca/src/develop/server/nsp_servers/csc/changesetmanager/SyncMgr/interface /home/bjornca/src/develop/server/nsp_servers/csc/changesetmanager/interface /home/bjornca/src/develop/server/nsp_servers/csc/comlvalidator/interface

/home/bjornca/src/develop/server/nsp_servers/csc/configurationstoragemanager/include

/home/bjornca/src/develop/server/nsp_servers/csc/configurationstoragemanager/interface /home/bjornca/src/develop/server/nsp_servers/csc/cspclient/interface /home/bjornca/src/develop/server/nsp_servers/csc/cspserver/interface /home/bjornca/src/develop/server/nsp_servers/csc/cwsserver/include /home/bjornca/src/develop/server/nsp_servers/csc/cwsserver/interface /home/bjornca/src/develop/server/nsp_servers/csc/defaultmodule/interface /home/bjornca/src/develop/server/nsp_servers/csc/eventmanager/interface

/home/bjornca/src/develop/server/nsp_servers/csc/impex/customUpgrade/interface /home/bjornca/src/develop/server/nsp_servers/csc/impex/impexBuild/interface

/home/bjornca/src/develop/server/nsp_servers/csc/impex/impexExtract/interface

/home/bjornca/src/develop/server/nsp_servers/csc/impex/impexExtractDecorate/interface

/home/bjornca/src/develop/server/nsp_servers/csc/impex/impexInterpretDecorate/interface /home/bjornca/src/develop/server/nsp_servers/csc/impex/impexParse/interface

/home/bjornca/src/develop/server/nsp_servers/csc/impex/impexSerialize/interface

/home/bjornca/src/develop/server/nsp_servers/csc/impex/impexValidate/interface /home/bjornca/src/develop/server/nsp_servers/csc/impex/interface /home/bjornca/src/develop/server/nsp_servers/csc/impexmanager/interface /home/bjornca/src/develop/server/nsp_servers/csc/interface /home/bjornca/src/develop/server/nsp_servers/csc/licensemanager/interface /home/bjornca/src/develop/server/nsp_servers/csc/logmanager/interface /home/bjornca/src/develop/server/nsp_servers/csc/moduleregistry/include /home/bjornca/src/develop/server/nsp_servers/csc/moduleregistry/interface /home/bjornca/src/develop/server/nsp_servers/csc/mrf/interface /home/bjornca/src/develop/server/nsp_servers/csc/objectmanager/interface

/home/bjornca/src/develop/server/nsp_servers/csc/persistentmemorymanager/interface /home/bjornca/src/develop/server/nsp_servers/csc/pluginmanager/interface

/home/bjornca/src/develop/server/nsp_servers/csc/portaccessmanager/interface /home/bjornca/src/develop/server/nsp_servers/csc/progressmanager/interface /home/bjornca/src/develop/server/nsp_servers/csc/runtimedbmanager/interface /home/bjornca/src/develop/server/nsp_servers/csc/searchmanager/interface /home/bjornca/src/develop/server/nsp_servers/csc/securitymanager/interface

/home/bjornca/src/develop/server/nsp_servers/csc/servercontextmanager/interface /home/bjornca/src/develop/server/nsp_servers/csc/sessionmgr/interface

/home/bjornca/src/develop/server/nsp_servers/csc/systemservicesmanager/interface

/home/bjornca/src/develop/server/nsp_servers/csc/transactionmanager/interface /home/bjornca/src/develop/server/nsp_servers/csc/unitconverter/interface /home/bjornca/src/develop/server/nsp_servers/csc/util/interface

/home/bjornca/src/develop/server/nsp_servers/csc/wblserver/wbl_proto_files/interface

/home/bjornca/src/develop/server/nsp_servers/csc/wblserver/wbl_proto_files/interface/nsp /home/bjornca/src/develop/server/nsp_servers/csc/webserver/interface

/home/bjornca/src/develop/server/nsp_servers/csc/webserver/jsonlib_deprecated/interface

/home/bjornca/src/develop/server/nsp_servers/csc/webserver/jsonserver/interface /home/bjornca/src/develop/server/nsp_servers/csc/zoningmanager/interface /home/bjornca/src/develop/server/nsp_servers/interface /home/bjornca/src/develop/server/utilities/ASN.1/CPP/interface /home/bjornca/src/develop/server/utilities/ErrorMgr/interface /home/bjornca/src/develop/server/utilities/JSON/interface /home/bjornca/src/develop/server/utilities/NspLogger/interface /home/bjornca/src/develop/server/utilities/NspTCP/interface /home/bjornca/src/develop/server/utilities/authentication/interface /home/bjornca/src/develop/server/utilities/coml/interface /home/bjornca/src/develop/server/utilities/comltranslator/interface /home/bjornca/src/develop/server/utilities/comlxml/interface /home/bjornca/src/develop/server/utilities/contract/interface /home/bjornca/src/develop/server/utilities/cos/interface /home/bjornca/src/develop/server/utilities/criticalsection/interface /home/bjornca/src/develop/server/utilities/datastructures/interface /home/bjornca/src/develop/server/utilities/interface /home/bjornca/src/develop/server/utilities/msg/interface /home/bjornca/src/develop/server/utilities/netcom/CSP_Packets/interface /home/bjornca/src/develop/server/utilities/netcom/interface /home/bjornca/src/develop/server/utilities/osutils/interface /home/bjornca/src/develop/server/utilities/security/interface /home/bjornca/src/develop/server/utilities/serverapplication/interface /home/bjornca/src/develop/server/utilities/session/interface /home/bjornca/src/develop/server/utilities/sha/interface /home/bjornca/src/develop/server/utilities/string/interface /home/bjornca/src/develop/artifacts/external/boost/deliverables/interface /home/bjornca/src/develop/artifacts/external/exprtk/deliverables/interface

/home/bjornca/src/develop/artifacts/external/flexnetembedded/deliverables/interface

/home/bjornca/src/develop/artifacts/external/gperftools/deliverables/interface /home/bjornca/src/develop/artifacts/external/gsoap/deliverables/interface /home/bjornca/src/develop/artifacts/external/poco/deliverables/interface

/home/bjornca/src/develop/artifacts/external/protobufcpp/deliverables/interface /home/bjornca/src/develop/artifacts/external/rapidjson/include /home/bjornca/src/develop/artifacts/external/snmp/deliverables/interface /home/bjornca/src/develop/artifacts/external/sqlite3/deliverables/interface

/home/bjornca/src/develop/artifacts/external/sysroots/linux_pc_64_gcc-7.3.0/opt/sbo/include /usr/include/c++/8 /usr/include/x86_64-linux-gnu/c++/8 /usr/include/c++/8/backward /usr/lib/llvm-6.0/lib/clang/6.0.0/include /usr/local/include /usr/include/x86_64-linux-gnu /usr/include Defines: _DEBUG semantics_EXPORTS BOOST_ALL_NO_LIB BOOST_CHRONO_DYN_LINK BOOST_SYSTEM_DYN_LINK BOOST_THREAD_DYN_LINK POCO_NO_AUTOMATIC_LIBS PROTOBUF_FINAL= WITH_COOKIES WITH_NONAMESPACES WITH_OPENSSL WITH_PURE_VIRTUAL PROTOBUF_FINAL= Standard Version: c++14 IntelliSense Mode: clang-x64 Other Flags: --clang --clang_version=60000 Total Memory Usage: 279 MB

On Tue, 11 Feb 2020 at 20:33, Sean McManus notifications@github.com wrote:

Also, if you're using compile_commands.json, it will try to get includePaths from that, but you may need to set your browse.path setting to include all the folders that you want to be parsed for global symbols (see

1715 https://github.com/microsoft/vscode-cpptools/issues/1715 ).

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/microsoft/vscode-cpptools/issues/4934?email_source=notifications&email_token=AAA5YCSHFTWX2DKZYH2YXMTRCL4RJA5CNFSM4KRKSHU2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOELNYJDY#issuecomment-584811663, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAA5YCQQXBVUVZUJKJG7TADRCL4RJANCNFSM4KRKSHUQ .

--


Björn Carlsson Telefon 0704-10 69 77 Epost mailto://b.r.carlsson@gmail.com Blog http://hackerbaloo.blogspot.com/


--


Björn Carlsson Telefon 0704-10 69 77 Epost mailto://b.r.carlsson@gmail.com Blog http://hackerbaloo.blogspot.com/


sean-mcmanus commented 4 years ago

The include shown from C/C++: Log Diagnostics are from compile_commands.json and not the same used for workspace symbol searching/parsing (from browse.path), e.g. I don't see the develop/server folder under the browse.path. Can you add those folders or was that the cause of the large database?

If you set C_Cpp.loggingLevel to "Debug" you can see more diagnostics on the browse.path affect.

HackerBaloo commented 4 years ago

develop/server is the workspace folder

On Wed, 12 Feb 2020 at 21:38, Sean McManus notifications@github.com wrote:

The include shown from C/C++: Log Diagnostics are from compile_commands.json and not the same used for workspace symbol searching/parsing (from browse.path), e.g. I don't see the develop/server folder under the browse.path. Can you add those folders or was that the cause of the large database?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/microsoft/vscode-cpptools/issues/4934?email_source=notifications&email_token=AAA5YCV5ZM6DI7GOXMOFZ43RCRM4PA5CNFSM4KRKSHU2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOELSJRCA#issuecomment-585406600, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAA5YCUPL3IRZ3GDSSZ5BELRCRM4PANCNFSM4KRKSHUQ .

--


Björn Carlsson Telefon 0704-10 69 77 Epost mailto://b.r.carlsson@gmail.com Blog http://hackerbaloo.blogspot.com/


sean-mcmanus commented 4 years ago

Ah, okay.

Your usage of "browse.path" appears incorrect -- it should be

"browse": {
   "path": [
     ]
}

i.e. you can add the "path" property next to your existing limitSymbolsToIncludedHeaders property.

Have you been able to see the "C/C++" debug logging yet to see what files are getting "tag" parsed? That info can help diagose issues with an incorect browse.path.

80 MB seems too small if you have a really large workspace, but the 3.9 GB might lead to performance issues. You might want to use "${workspaceFolder}/*" (non recursive) and "${workspaceFolder}/subfolder" to specify fewer directories for symbols or add folders to files.exclude.

HackerBaloo commented 4 years ago

latest.zip

I have now adjusted and trimmed my browsing settings. and the result is a 346 MB DB. Attached also the output when all files are tag parsed after a reset of the DB. But for some reason when I now execute "Go to Symbols in File" the progress never seems to stop. And then I tested a restart of Code, and now it works fine. Case closed I guess.

sean-mcmanus commented 4 years ago

Go to Symbol in File could get stuck if our parsing queue is backed up with work. Let us know if you find a consistent repro.

fearthecowboy commented 8 months ago

A significant update to Go To Symbol has been published in the insiders build - see #11557