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

Intellisense only partially works when working on CUDA files #709

Open
eduardz1 opened this issue Oct 26, 2024 · 7 comments
Open

Intellisense only partially works when working on CUDA files #709

eduardz1 opened this issue Oct 26, 2024 · 7 comments
Labels
bug Something isn't working

Comments

@eduardz1
Copy link

eduardz1 commented Oct 26, 2024

When trying to write code in a .cu file the Intellisense only partially works, for example if I try compile this code as a .cpp file then every header is correctly recognized and quick fixes work

image

But when I try to write the same code in a .cu file the C++ standard libraries are not picked up anymore.

image

I am compiling with CMake with the CMAKE_EXPORT_COMPILE_COMMANDS set to ON.

In .vscode/settings.json I have set

{
    "clangd.arguments": [
        "--query-driver=/usr/bin/g++",
    ]
}

so that clangd picks up the C++ std library in .cpp files

Logs

I[15:02:58.498] clangd version 18.1.3 (https://github.com/llvm/llvm-project c13b7485b87909fcf739f62cfa382b55407433c0)
I[15:02:58.498] Features: linux+grpc
I[15:02:58.498] PID: 27477
I[15:02:58.498] Working directory: /user/1/.base/occhipie/home/Git/CUDA-Path-Tracer
I[15:02:58.498] argv[0]: /user/1/occhipie/.vscode-server/data/User/globalStorage/llvm-vs-code-extensions.vscode-clangd/install/18.1.3/clangd_18.1.3/bin/clangd
I[15:02:58.498] argv[1]: --query-driver=/usr/bin/g++
I[15:02:58.498] Starting LSP over stdin/stdout
I[15:02:58.592] <-- initialize(0)
I[15:02:58.596] --> reply:initialize(0) 4 ms
I[15:02:58.741] <-- initialized
I[15:02:58.903] <-- textDocument/didOpen
E[15:02:58.904] System include extraction: driver clang not found in PATH
I[15:02:58.911] --> textDocument/publishDiagnostics
I[15:02:58.914] Loaded compilation database from /user/1/occhipie/Git/CUDA-Path-Tracer/build/compile_commands.json
I[15:02:58.916] ASTWorker building file /user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu version 1 with command inferred from /user/1/occhipie/Git/CUDA-Path-Tracer/src/render.cu
[/user/1/occhipie/Git/CUDA-Path-Tracer/build/src]
/usr/bin/nvcc -g -c --cuda-gpu-arch=sm_90 -resource-dir=/user/1/.base/occhipie/home/.vscode-server/data/User/globalStorage/llvm-vs-code-extensions.vscode-clangd/install/18.1.3/clangd_18.1.3/lib/clang/18 -- /user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu
I[15:02:58.926] --> textDocument/clangd.fileStatus
I[15:02:58.927] Loaded compilation database from /user/1/occhipie/Git/CUDA-Path-Tracer/build/compile_commands.json
I[15:02:58.928] <-- textDocument/documentSymbol(1)
I[15:02:58.928] <-- textDocument/documentLink(2)
I[15:02:58.928] <-- textDocument/inlayHint(3)
I[15:02:58.928] <-- textDocument/codeAction(4)
I[15:02:58.928] --> window/workDoneProgress/create(0)
I[15:02:58.929] Enqueueing 4 commands for indexing
I[15:02:58.955] <-- reply(0)
I[15:02:58.955] --> $/progress
I[15:02:58.955] --> $/progress
I[15:02:59.009] --> $/progress
I[15:02:59.009] --> $/progress
I[15:02:59.186] Built preamble of size 2699620 for file /user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu version 1 in 0.26 seconds
I[15:02:59.187] --> workspace/semanticTokens/refresh(1)
E[15:02:59.214] IncludeCleaner: Failed to get an entry for resolved path : No such file or directory
E[15:02:59.214] IncludeCleaner: Failed to get an entry for resolved path : No such file or directory
E[15:02:59.214] IncludeCleaner: Failed to get an entry for resolved path : No such file or directory
I[15:02:59.215] --> textDocument/publishDiagnostics
I[15:02:59.215] --> textDocument/inactiveRegions
I[15:02:59.215] --> reply:textDocument/documentSymbol(1) 287 ms
I[15:02:59.215] --> reply:textDocument/documentLink(2) 287 ms
I[15:02:59.215] --> reply:textDocument/inlayHint(3) 286 ms
I[15:02:59.215] --> reply:textDocument/codeAction(4) 286 ms
I[15:02:59.215] --> textDocument/clangd.fileStatus
I[15:02:59.238] <-- textDocument/foldingRange(5)
I[15:02:59.238] --> reply:textDocument/foldingRange(5) 0 ms
I[15:02:59.252] <-- reply(1)
I[15:02:59.405] <-- textDocument/semanticTokens/full(6)
I[15:02:59.405] --> reply:textDocument/semanticTokens/full(6) 0 ms
I[15:02:59.405] --> textDocument/clangd.fileStatus
I[15:02:59.695] <-- textDocument/codeAction(7)
I[15:02:59.695] --> reply:textDocument/codeAction(7) 0 ms
I[15:02:59.695] --> textDocument/clangd.fileStatus
I[15:03:00.282] <-- textDocument/inlayHint(8)
I[15:03:00.283] --> reply:textDocument/inlayHint(8) 0 ms
I[15:03:00.283] --> textDocument/clangd.fileStatus
I[15:03:01.083] <-- textDocument/codeAction(9)
I[15:03:01.083] --> reply:textDocument/codeAction(9) 0 ms
I[15:03:01.083] --> textDocument/clangd.fileStatus
I[15:03:02.515] <-- textDocument/foldingRange(10)
I[15:03:02.516] --> reply:textDocument/foldingRange(10) 0 ms
I[15:03:03.657] <-- textDocument/codeAction(11)
I[15:03:03.657] --> reply:textDocument/codeAction(11) 0 ms
I[15:03:03.657] --> textDocument/clangd.fileStatus
I[15:03:06.956] <-- textDocument/codeAction(12)
I[15:03:06.958] --> reply:textDocument/codeAction(12) 1 ms
I[15:03:06.958] --> textDocument/clangd.fileStatus
I[15:03:10.711] <-- textDocument/codeAction(13)
I[15:03:10.711] <-- textDocument/codeAction(14)
I[15:03:10.711] <-- textDocument/codeAction(15)
I[15:03:10.711] --> reply:textDocument/codeAction(13) 0 ms
I[15:03:10.712] --> reply:textDocument/codeAction(14) 0 ms
I[15:03:10.712] --> reply:textDocument/codeAction(15) 0 ms
I[15:03:10.712] --> textDocument/clangd.fileStatus
I[15:03:10.772] <-- $/cancelRequest
I[15:03:10.772] <-- $/cancelRequest
@eduardz1 eduardz1 added the bug Something isn't working label Oct 26, 2024
@HighCommander4
Copy link
Contributor

Please attach clangd logs as instructed in the issue template.

@eduardz1
Copy link
Author

Please attach clangd logs as instructed in the issue template.

Sorry, I updated the issue

@HighCommander4
Copy link
Contributor

HighCommander4 commented Oct 27, 2024

Could you add --log=verbose to clangd's arguments and post logs with that in place?

@eduardz1
Copy link
Author

Could you add --log=verbose to clangd's arguments and post logs with that in place?

Here it is

I[23:51:39.509] clangd version 18.1.3 (https://github.com/llvm/llvm-project c13b7485b87909fcf739f62cfa382b55407433c0)
I[23:51:39.509] Features: linux+grpc
I[23:51:39.509] PID: 82927
I[23:51:39.509] Working directory: /user/1/.base/occhipie/home/Git/CUDA-Path-Tracer
I[23:51:39.509] argv[0]: /user/1/occhipie/.vscode-server/data/User/globalStorage/llvm-vs-code-extensions.vscode-clangd/install/18.1.3/clangd_18.1.3/bin/clangd
I[23:51:39.509] argv[1]: --query-driver=/usr/bin/g++
I[23:51:39.509] argv[2]: --log=verbose
V[23:51:39.509] User config file is /user/1/occhipie/.config/clangd/config.yaml
I[23:51:39.509] Starting LSP over stdin/stdout
V[23:51:39.510] <<< {"id":0,"jsonrpc":"2.0","method":"initialize","params":{"capabilities":{"general":{"markdown":{"parser":"marked","version":"1.1.0"},"positionEncodings":["utf-16"],"regularExpressions":{"engine":"ECMAScript","version":"ES2020"},"staleRequestSupport":{"cancel":true,"retryOnContentModified":["textDocument/semanticTokens/full","textDocument/semanticTokens/range","textDocument/semanticTokens/full/delta"]}},"notebookDocument":{"synchronization":{"dynamicRegistration":true,"executionSummarySupport":true}},"textDocument":{"callHierarchy":{"dynamicRegistration":true},"codeAction":{"codeActionLiteralSupport":{"codeActionKind":{"valueSet":["","quickfix","refactor","refactor.extract","refactor.inline","refactor.rewrite","source","source.organizeImports"]}},"dataSupport":true,"disabledSupport":true,"dynamicRegistration":true,"honorsChangeAnnotations":false,"isPreferredSupport":true,"resolveSupport":{"properties":["edit"]}},"codeLens":{"dynamicRegistration":true},"colorProvider":{"dynamicRegistration":true},"completion":{"completionItem":{"commitCharactersSupport":true,"deprecatedSupport":true,"documentationFormat":["markdown","plaintext"],"insertReplaceSupport":true,"insertTextModeSupport":{"valueSet":[1,2]},"labelDetailsSupport":true,"preselectSupport":true,"resolveSupport":{"properties":["documentation","detail","additionalTextEdits"]},"snippetSupport":true,"tagSupport":{"valueSet":[1]}},"completionItemKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]},"completionList":{"itemDefaults":["commitCharacters","editRange","insertTextFormat","insertTextMode"]},"contextSupport":true,"dynamicRegistration":true,"editsNearCursor":true,"insertTextMode":2},"declaration":{"dynamicRegistration":true,"linkSupport":true},"definition":{"dynamicRegistration":true,"linkSupport":true},"diagnostic":{"dynamicRegistration":true,"relatedDocumentSupport":false},"documentHighlight":{"dynamicRegistration":true},"documentLink":{"dynamicRegistration":true,"tooltipSupport":true},"documentSymbol":{"dynamicRegistration":true,"hierarchicalDocumentSymbolSupport":true,"labelSupport":true,"symbolKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]},"tagSupport":{"valueSet":[1]}},"foldingRange":{"dynamicRegistration":true,"foldingRange":{"collapsedText":false},"foldingRangeKind":{"valueSet":["comment","imports","region"]},"lineFoldingOnly":true,"rangeLimit":5000},"formatting":{"dynamicRegistration":true},"hover":{"contentFormat":["markdown","plaintext"],"dynamicRegistration":true},"implementation":{"dynamicRegistration":true,"linkSupport":true},"inactiveRegionsCapabilities":{"inactiveRegions":true},"inlayHint":{"dynamicRegistration":true,"resolveSupport":{"properties":["tooltip","textEdits","label.tooltip","label.location","label.command"]}},"inlineValue":{"dynamicRegistration":true},"linkedEditingRange":{"dynamicRegistration":true},"onTypeFormatting":{"dynamicRegistration":true},"publishDiagnostics":{"codeDescriptionSupport":true,"dataSupport":true,"relatedInformation":true,"tagSupport":{"valueSet":[1,2]},"versionSupport":false},"rangeFormatting":{"dynamicRegistration":true},"references":{"dynamicRegistration":true},"rename":{"dynamicRegistration":true,"honorsChangeAnnotations":true,"prepareSupport":true,"prepareSupportDefaultBehavior":1},"selectionRange":{"dynamicRegistration":true},"semanticTokens":{"augmentsSyntaxTokens":true,"dynamicRegistration":true,"formats":["relative"],"multilineTokenSupport":false,"overlappingTokenSupport":false,"requests":{"full":{"delta":true},"range":true},"serverCancelSupport":true,"tokenModifiers":["declaration","definition","readonly","static","deprecated","abstract","async","modification","documentation","defaultLibrary"],"tokenTypes":["namespace","type","class","enum","interface","struct","typeParameter","parameter","variable","property","enumMember","event","function","method","macro","keyword","modifier","comment","string","number","regexp","operator","decorator"]},"signatureHelp":{"contextSupport":true,"dynamicRegistration":true,"signatureInformation":{"activeParameterSupport":true,"documentationFormat":["markdown","plaintext"],"parameterInformation":{"labelOffsetSupport":true}}},"synchronization":{"didSave":true,"dynamicRegistration":true,"willSave":true,"willSaveWaitUntil":true},"typeDefinition":{"dynamicRegistration":true,"linkSupport":true},"typeHierarchy":{"dynamicRegistration":true}},"window":{"showDocument":{"support":true},"showMessage":{"messageActionItem":{"additionalPropertiesSupport":true}},"workDoneProgress":true},"workspace":{"applyEdit":true,"codeLens":{"refreshSupport":true},"configuration":true,"diagnostics":{"refreshSupport":true},"didChangeConfiguration":{"dynamicRegistration":true},"didChangeWatchedFiles":{"dynamicRegistration":true,"relativePatternSupport":true},"executeCommand":{"dynamicRegistration":true},"fileOperations":{"didCreate":true,"didDelete":true,"didRename":true,"dynamicRegistration":true,"willCreate":true,"willDelete":true,"willRename":true},"inlayHint":{"refreshSupport":true},"inlineValue":{"refreshSupport":true},"semanticTokens":{"refreshSupport":true},"symbol":{"dynamicRegistration":true,"resolveSupport":{"properties":["location.range"]},"symbolKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]},"tagSupport":{"valueSet":[1]}},"workspaceEdit":{"changeAnnotationSupport":{"groupsOnLabel":true},"documentChanges":true,"failureHandling":"textOnlyTransactional","normalizesLineEndings":true,"resourceOperations":["create","rename","delete"]},"workspaceFolders":true}},"clientInfo":{"name":"Visual Studio Code","version":"1.94.2"},"initializationOptions":{"clangdFileStatus":true,"fallbackFlags":[]},"locale":"en","processId":82862,"rootPath":"/user/1/occhipie/Git/CUDA-Path-Tracer","rootUri":"file:///user/1/occhipie/Git/CUDA-Path-Tracer","trace":"off","workspaceFolders":[{"name":"CUDA-Path-Tracer","uri":"file:///user/1/occhipie/Git/CUDA-Path-Tracer"}]}}

I[23:51:39.510] <-- initialize(0)
I[23:51:39.513] --> reply:initialize(0) 2 ms
V[23:51:39.513] >>> {"id":0,"jsonrpc":"2.0","result":{"capabilities":{"astProvider":true,"callHierarchyProvider":true,"clangdInlayHintsProvider":true,"codeActionProvider":{"codeActionKinds":["quickfix","refactor","info"]},"compilationDatabase":{"automaticReload":true},"completionProvider":{"resolveProvider":false,"triggerCharacters":[".","<",">",":","\"","/","*"]},"declarationProvider":true,"definitionProvider":true,"documentFormattingProvider":true,"documentHighlightProvider":true,"documentLinkProvider":{"resolveProvider":false},"documentOnTypeFormattingProvider":{"firstTriggerCharacter":"\n","moreTriggerCharacter":[]},"documentRangeFormattingProvider":true,"documentSymbolProvider":true,"executeCommandProvider":{"commands":["clangd.applyFix","clangd.applyTweak"]},"foldingRangeProvider":true,"hoverProvider":true,"implementationProvider":true,"inactiveRegionsProvider":true,"inlayHintProvider":true,"memoryUsageProvider":true,"referencesProvider":true,"renameProvider":{"prepareProvider":true},"selectionRangeProvider":true,"semanticTokensProvider":{"full":{"delta":true},"legend":{"tokenModifiers":["declaration","definition","deprecated","deduced","readonly","static","abstract","virtual","dependentName","defaultLibrary","usedAsMutableReference","usedAsMutablePointer","constructorOrDestructor","userDefined","functionScope","classScope","fileScope","globalScope"],"tokenTypes":["variable","variable","parameter","function","method","function","property","variable","class","interface","enum","enumMember","type","type","unknown","namespace","typeParameter","concept","type","macro","modifier","operator","bracket","label","comment"]},"range":false},"signatureHelpProvider":{"triggerCharacters":["(",")","{","}","<",">",","]},"standardTypeHierarchyProvider":true,"textDocumentSync":{"change":2,"openClose":true,"save":true},"typeDefinitionProvider":true,"typeHierarchyProvider":true,"workspaceSymbolProvider":true},"serverInfo":{"name":"clangd","version":"clangd version 18.1.3 (https://github.com/llvm/llvm-project c13b7485b87909fcf739f62cfa382b55407433c0) linux+grpc x86_64-unknown-linux-gnu"}}}

V[23:51:40.241] <<< {"jsonrpc":"2.0","method":"initialized","params":{}}

I[23:51:40.241] <-- initialized
V[23:51:40.275] <<< {"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{"languageId":"cuda-cpp","text":"#include \"cuda_path_tracer/error.cuh\"\n#include <cstdio>\n#include <cstdlib>\n#include <cuda_device_runtime_api.h>\n#include <cuda_runtime_api.h>\n\ninline void cudaAssert(cudaError_t code, const char *file, int line) {\n  if (code == cudaSuccess)\n    return;\n\n  fprintf(stderr, \"CUDA Error: %s %s %d\\n\", cudaGetErrorString(code), file,\n          line);\n  exit(code);\n}","uri":"file:///user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu","version":1}}}

I[23:51:40.275] <-- textDocument/didOpen
E[23:51:40.276] System include extraction: driver clang not found in PATH
V[23:51:40.278] config note at /user/1/occhipie/Git/CUDA-Path-Tracer/.clangd:1:0: Parsing config fragment
V[23:51:40.279] config note at /user/1/occhipie/Git/CUDA-Path-Tracer/.clangd:1:0: Parsed 1 fragments from file
V[23:51:40.279] Config fragment: compiling /user/1/occhipie/Git/CUDA-Path-Tracer/.clangd:1 -> 0x00007D0B68002230 (trusted=false)
I[23:51:40.284] --> textDocument/publishDiagnostics
V[23:51:40.284] >>> {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///user/1/occhipie/Git/CUDA-Path-Tracer/.clangd"}}

I[23:51:40.287] Loaded compilation database from /user/1/occhipie/Git/CUDA-Path-Tracer/build/compile_commands.json
V[23:51:40.287] Broadcasting compilation database from /user/1/occhipie/Git/CUDA-Path-Tracer
V[23:51:40.288] System include extraction: not allowed driver /usr/bin/nvcc
I[23:51:40.288] ASTWorker building file /user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu version 1 with command 
[/user/1/occhipie/Git/CUDA-Path-Tracer/build/src]
/usr/bin/nvcc -g -c -std=c++20 --cuda-gpu-arch=sm_90 -resource-dir=/user/1/.base/occhipie/home/.vscode-server/data/User/globalStorage/llvm-vs-code-extensions.vscode-clangd/install/18.1.3/clangd_18.1.3/lib/clang/18 -- /user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu
I[23:51:40.290] Loaded compilation database from /user/1/occhipie/Git/CUDA-Path-Tracer/build/compile_commands.json
I[23:51:40.291] --> window/workDoneProgress/create(0)
V[23:51:40.291] >>> {"id":0,"jsonrpc":"2.0","method":"window/workDoneProgress/create","params":{"token":"backgroundIndexProgress"}}

I[23:51:40.291] Enqueueing 6 commands for indexing
V[23:51:40.295] Driver produced command: cc1 -cc1 -triple x86_64-unknown-linux-gnu -target-sdk-version=12.0 -fcuda-allow-variadic-functions -aux-triple nvptx64-nvidia-cuda -fsyntax-only -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name error.cu -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debug-info-kind=constructor -dwarf-version=5 -debugger-tuning=gdb -fdebug-compilation-dir=/user/1/occhipie/Git/CUDA-Path-Tracer/build/src -fcoverage-compilation-dir=/user/1/occhipie/Git/CUDA-Path-Tracer/build/src -resource-dir /user/1/.base/occhipie/home/.vscode-server/data/User/globalStorage/llvm-vs-code-extensions.vscode-clangd/install/18.1.3/clangd_18.1.3/lib/clang/18 -internal-isystem /user/1/.base/occhipie/home/.vscode-server/data/User/globalStorage/llvm-vs-code-extensions.vscode-clangd/install/18.1.3/clangd_18.1.3/lib/clang/18/include/cuda_wrappers -include __clang_cuda_runtime_wrapper.h -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++ -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/x86_64-linux-gnu -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/backward -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++ -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/x86_64-linux-gnu -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/backward -internal-isystem /user/1/.base/occhipie/home/.vscode-server/data/User/globalStorage/llvm-vs-code-extensions.vscode-clangd/install/18.1.3/clangd_18.1.3/lib/clang/18/include -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../x86_64-linux-gnu/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -internal-isystem /user/1/.base/occhipie/home/.vscode-server/data/User/globalStorage/llvm-vs-code-extensions.vscode-clangd/install/18.1.3/clangd_18.1.3/lib/clang/18/include -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../x86_64-linux-gnu/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -internal-isystem /usr/lib/cuda/include -std=c++20 -fdeprecated-macro -ferror-limit 19 -fgnuc-version=4.2.1 -fno-implicit-modules -fskip-odr-check-in-gmf -fcxx-exceptions -fexceptions -no-round-trip-args -cuid=ef6215d47a144a58 -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -x cuda /user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu
I[23:51:40.295] --> textDocument/clangd.fileStatus
V[23:51:40.295] config note at /user/1/.base/occhipie/home/Git/CUDA-Path-Tracer/.clangd:1:0: Parsing config fragment
V[23:51:40.295] config note at /user/1/.base/occhipie/home/Git/CUDA-Path-Tracer/.clangd:1:0: Parsed 1 fragments from file
V[23:51:40.295] Config fragment: compiling /user/1/.base/occhipie/home/Git/CUDA-Path-Tracer/.clangd:1 -> 0x00007D0B80004AD0 (trusted=false)
V[23:51:40.295] >>> {"jsonrpc":"2.0","method":"textDocument/clangd.fileStatus","params":{"state":"parsing includes, running Update","uri":"file:///user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu"}}

V[23:51:40.295] Building first preamble for /user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu version 1
I[23:51:40.295] --> textDocument/publishDiagnostics
V[23:51:40.295] >>> {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///user/1/.base/occhipie/home/Git/CUDA-Path-Tracer/.clangd"}}

I[23:51:40.297] Loaded compilation database from /user/1/.base/occhipie/home/Git/CUDA-Path-Tracer/build/compile_commands.json
I[23:51:40.471] Loaded compilation database from /user/1/.base/occhipie/home/Git/CUDA-Path-Tracer/build/compile_commands.json
V[23:51:40.477] <<< {"id":0,"jsonrpc":"2.0","result":null}

I[23:51:40.477] <-- reply(0)
I[23:51:40.477] --> $/progress
V[23:51:40.477] >>> {"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"begin","percentage":0,"title":"indexing"}}}

I[23:51:40.477] --> $/progress
V[23:51:40.477] >>> {"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"report","message":"0/1","percentage":0}}}

V[23:51:40.477] <<< {"id":1,"jsonrpc":"2.0","method":"textDocument/documentSymbol","params":{"textDocument":{"uri":"file:///user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu"}}}

I[23:51:40.477] <-- textDocument/documentSymbol(1)
V[23:51:40.477] <<< {"id":2,"jsonrpc":"2.0","method":"textDocument/documentLink","params":{"textDocument":{"uri":"file:///user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu"}}}

I[23:51:40.477] <-- textDocument/documentLink(2)
V[23:51:40.477] <<< {"id":3,"jsonrpc":"2.0","method":"textDocument/inlayHint","params":{"range":{"end":{"character":1,"line":13},"start":{"character":0,"line":0}},"textDocument":{"uri":"file:///user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu"}}}

I[23:51:40.477] <-- textDocument/inlayHint(3)
V[23:51:40.477] <<< {"id":4,"jsonrpc":"2.0","method":"textDocument/documentLink","params":{"textDocument":{"uri":"file:///user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu"}}}

I[23:51:40.477] <-- textDocument/documentLink(4)
V[23:51:40.477] <<< {"id":5,"jsonrpc":"2.0","method":"textDocument/codeAction","params":{"context":{"diagnostics":[],"triggerKind":2},"range":{"end":{"character":1,"line":13},"start":{"character":1,"line":13}},"textDocument":{"uri":"file:///user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu"}}}

I[23:51:40.477] <-- textDocument/codeAction(5)
V[23:51:40.478] <<< {"id":6,"jsonrpc":"2.0","method":"textDocument/codeAction","params":{"context":{"diagnostics":[],"triggerKind":2},"range":{"end":{"character":1,"line":13},"start":{"character":1,"line":13}},"textDocument":{"uri":"file:///user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu"}}}

I[23:51:40.478] <-- textDocument/codeAction(6)
V[23:51:40.489] <<< {"jsonrpc":"2.0","method":"$/cancelRequest","params":{"id":2}}

I[23:51:40.489] <-- $/cancelRequest
V[23:51:40.489] <<< {"jsonrpc":"2.0","method":"$/cancelRequest","params":{"id":5}}

I[23:51:40.489] <-- $/cancelRequest
V[23:51:40.557] BackgroundIndex: building version 1 after loading index from disk
V[23:51:40.568] Dropped diagnostic: /user/1/.base/occhipie/home/.vscode-server/data/User/globalStorage/llvm-vs-code-extensions.vscode-clangd/install/18.1.3/clangd_18.1.3/lib/clang/18/include/cuda_wrappers/cmath: 'cmath' file not found
I[23:51:40.569] Built preamble of size 2702220 for file /user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu version 1 in 0.27 seconds
I[23:51:40.570] --> workspace/semanticTokens/refresh(1)
V[23:51:40.570] >>> {"id":1,"jsonrpc":"2.0","method":"workspace/semanticTokens/refresh","params":null}

V[23:51:40.586] Trying to fix unresolved name "stderr" in scopes: []
E[23:51:40.590] IncludeCleaner: Failed to get an entry for resolved path : No such file or directory
E[23:51:40.590] IncludeCleaner: Failed to get an entry for resolved path : No such file or directory
E[23:51:40.590] IncludeCleaner: Failed to get an entry for resolved path : No such file or directory
V[23:51:40.592] indexed file AST for /user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu version 1:
  symbol slab: 1 symbols, 4448 bytes
  ref slab: 5 symbols, 5 refs, 4416 bytes
  relations slab: 0 relations, 24 bytes
V[23:51:40.592] Build dynamic index for main-file symbols with estimated memory usage of 11816 bytes
I[23:51:40.592] --> textDocument/publishDiagnostics
V[23:51:40.592] >>> {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[{"code":"undeclared_var_use","message":"Use of undeclared identifier 'stderr'","range":{"end":{"character":16,"line":10},"start":{"character":10,"line":10}},"relatedInformation":[],"severity":1,"source":"clang"}],"uri":"file:///user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu","version":1}}

I[23:51:40.592] --> textDocument/inactiveRegions
V[23:51:40.592] >>> {"jsonrpc":"2.0","method":"textDocument/inactiveRegions","params":{"regions":[],"textDocument":{"uri":"file:///user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu"}}}

V[23:51:40.592] ASTWorker running DocumentSymbols on version 1 of /user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu
I[23:51:40.592] --> reply:textDocument/documentSymbol(1) 114 ms
V[23:51:40.592] >>> {"id":1,"jsonrpc":"2.0","result":[{"detail":"void (cudaError_t, const char *, int)","kind":12,"name":"cudaAssert","range":{"end":{"character":1,"line":13},"start":{"character":0,"line":6}},"selectionRange":{"end":{"character":22,"line":6},"start":{"character":12,"line":6}}}]}

I[23:51:40.592] --> reply:textDocument/documentLink(2) 114 ms, error: Task was cancelled.
V[23:51:40.592] >>> {"error":{"code":-32800,"message":"Request cancelled"},"id":2,"jsonrpc":"2.0"}

V[23:51:40.592] ASTWorker running InlayHints on version 1 of /user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu
I[23:51:40.592] --> reply:textDocument/inlayHint(3) 114 ms
V[23:51:40.592] >>> {"id":3,"jsonrpc":"2.0","result":[{"kind":2,"label":"error:","paddingLeft":false,"paddingRight":true,"position":{"character":63,"line":10}},{"kind":2,"label":"status:","paddingLeft":false,"paddingRight":true,"position":{"character":7,"line":12}}]}

V[23:51:40.592] ASTWorker running DocumentLinks on version 1 of /user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu
I[23:51:40.592] --> reply:textDocument/documentLink(4) 114 ms
V[23:51:40.592] >>> {"id":4,"jsonrpc":"2.0","result":[{"range":{"end":{"character":36,"line":3},"start":{"character":9,"line":3}},"target":"file:///usr/include/cuda_device_runtime_api.h"},{"range":{"end":{"character":29,"line":4},"start":{"character":9,"line":4}},"target":"file:///usr/include/cuda_runtime_api.h"}]}

I[23:51:40.592] --> reply:textDocument/codeAction(5) 114 ms, error: Task was cancelled.
V[23:51:40.592] >>> {"error":{"code":-32800,"message":"Request cancelled"},"id":5,"jsonrpc":"2.0"}

V[23:51:40.592] ASTWorker running codeAction on version 1 of /user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu
I[23:51:40.592] --> reply:textDocument/codeAction(6) 114 ms
V[23:51:40.592] >>> {"id":6,"jsonrpc":"2.0","result":[]}

I[23:51:40.592] --> textDocument/clangd.fileStatus
V[23:51:40.592] >>> {"jsonrpc":"2.0","method":"textDocument/clangd.fileStatus","params":{"state":"idle","uri":"file:///user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu"}}

V[23:51:40.592] <<< {"id":1,"jsonrpc":"2.0","result":null}

I[23:51:40.592] <-- reply(1)
[Error - 11:51:40 PM] Request textDocument/documentLink failed.
[object Object]
[Error - 11:51:40 PM] Request textDocument/codeAction failed.
[object Object]
V[23:51:40.625] BackgroundIndex: serving version 1 (16739792 bytes)
I[23:51:40.635] --> $/progress
V[23:51:40.635] >>> {"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"report","message":"0/1","percentage":0}}}

I[23:51:40.635] --> $/progress
V[23:51:40.635] >>> {"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"end"}}}

V[23:51:40.687] indexed preamble AST for /user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu version 1:
  symbol slab: 6216 symbols, 3039755 bytes
  ref slab: 0 symbols, 0 refs, 128 bytes
  relations slab: 0 relations, 24 bytes
V[23:51:40.733] Build dynamic index for header symbols with estimated memory usage of 6644068 bytes
V[23:51:40.736] <<< {"id":7,"jsonrpc":"2.0","method":"textDocument/foldingRange","params":{"textDocument":{"uri":"file:///user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu"}}}

I[23:51:40.736] <-- textDocument/foldingRange(7)
I[23:51:40.736] --> reply:textDocument/foldingRange(7) 0 ms
V[23:51:40.736] >>> {"id":7,"jsonrpc":"2.0","result":[{"endLine":12,"kind":"region","startCharacter":70,"startLine":6}]}

V[23:51:40.756] <<< {"id":8,"jsonrpc":"2.0","method":"textDocument/semanticTokens/full","params":{"textDocument":{"uri":"file:///user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu"}}}

I[23:51:40.757] <-- textDocument/semanticTokens/full(8)
V[23:51:40.757] ASTWorker running SemanticHighlights on version 1 of /user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu
I[23:51:40.757] --> reply:textDocument/semanticTokens/full(8) 0 ms
V[23:51:40.757] >>> {"id":8,"jsonrpc":"2.0","result":{"data":[6,12,10,3,131075,0,11,11,10,66048,0,12,4,2,16387,0,18,4,2,16403,0,10,4,2,16387,1,6,4,2,16384,0,5,2,21,0,0,3,11,11,131600,3,2,7,14,256,0,42,18,3,131584,0,19,4,2,16384,0,7,4,2,16400,1,10,4,2,16384,1,2,4,3,131584,0,5,4,2,16384],"resultId":"1"}}

I[23:51:40.757] --> textDocument/clangd.fileStatus
V[23:51:40.757] >>> {"jsonrpc":"2.0","method":"textDocument/clangd.fileStatus","params":{"state":"idle","uri":"file:///user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu"}}

V[23:51:41.016] <<< {"id":9,"jsonrpc":"2.0","method":"textDocument/codeAction","params":{"context":{"diagnostics":[],"triggerKind":2},"range":{"end":{"character":1,"line":13},"start":{"character":1,"line":13}},"textDocument":{"uri":"file:///user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu"}}}

I[23:51:41.016] <-- textDocument/codeAction(9)
V[23:51:41.016] ASTWorker running codeAction on version 1 of /user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu
I[23:51:41.016] --> reply:textDocument/codeAction(9) 0 ms
V[23:51:41.016] >>> {"id":9,"jsonrpc":"2.0","result":[]}

I[23:51:41.016] --> textDocument/clangd.fileStatus
V[23:51:41.016] >>> {"jsonrpc":"2.0","method":"textDocument/clangd.fileStatus","params":{"state":"idle","uri":"file:///user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu"}}

V[23:51:41.493] <<< {"id":10,"jsonrpc":"2.0","method":"textDocument/inlayHint","params":{"range":{"end":{"character":1,"line":13},"start":{"character":0,"line":0}},"textDocument":{"uri":"file:///user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu"}}}

I[23:51:41.493] <-- textDocument/inlayHint(10)
V[23:51:41.493] ASTWorker running InlayHints on version 1 of /user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu
I[23:51:41.493] --> reply:textDocument/inlayHint(10) 0 ms
V[23:51:41.493] >>> {"id":10,"jsonrpc":"2.0","result":[{"kind":2,"label":"error:","paddingLeft":false,"paddingRight":true,"position":{"character":63,"line":10}},{"kind":2,"label":"status:","paddingLeft":false,"paddingRight":true,"position":{"character":7,"line":12}}]}

I[23:51:41.494] --> textDocument/clangd.fileStatus
V[23:51:41.494] >>> {"jsonrpc":"2.0","method":"textDocument/clangd.fileStatus","params":{"state":"idle","uri":"file:///user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu"}}

V[23:51:42.517] <<< {"id":11,"jsonrpc":"2.0","method":"textDocument/codeAction","params":{"context":{"diagnostics":[],"triggerKind":2},"range":{"end":{"character":1,"line":13},"start":{"character":1,"line":13}},"textDocument":{"uri":"file:///user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu"}}}

I[23:51:42.517] <-- textDocument/codeAction(11)
V[23:51:42.517] ASTWorker running codeAction on version 1 of /user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu
I[23:51:42.518] --> reply:textDocument/codeAction(11) 0 ms
V[23:51:42.518] >>> {"id":11,"jsonrpc":"2.0","result":[]}

I[23:51:42.518] --> textDocument/clangd.fileStatus
V[23:51:42.518] >>> {"jsonrpc":"2.0","method":"textDocument/clangd.fileStatus","params":{"state":"idle","uri":"file:///user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu"}}

V[23:51:42.724] <<< {"id":12,"jsonrpc":"2.0","method":"textDocument/foldingRange","params":{"textDocument":{"uri":"file:///user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu"}}}

I[23:51:42.724] <-- textDocument/foldingRange(12)
I[23:51:42.725] --> reply:textDocument/foldingRange(12) 0 ms
V[23:51:42.725] >>> {"id":12,"jsonrpc":"2.0","result":[{"endLine":12,"kind":"region","startCharacter":70,"startLine":6}]}

V[23:51:45.696] <<< {"id":13,"jsonrpc":"2.0","method":"textDocument/codeAction","params":{"context":{"diagnostics":[],"triggerKind":2},"range":{"end":{"character":1,"line":13},"start":{"character":1,"line":13}},"textDocument":{"uri":"file:///user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu"}}}

I[23:51:45.696] <-- textDocument/codeAction(13)
V[23:51:45.698] ASTWorker running codeAction on version 1 of /user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu
I[23:51:45.698] --> reply:textDocument/codeAction(13) 1 ms
V[23:51:45.698] >>> {"id":13,"jsonrpc":"2.0","result":[]}

I[23:51:45.698] --> textDocument/clangd.fileStatus
V[23:51:45.698] >>> {"jsonrpc":"2.0","method":"textDocument/clangd.fileStatus","params":{"state":"idle","uri":"file:///user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu"}}

V[23:51:48.235] <<< {"id":14,"jsonrpc":"2.0","method":"textDocument/codeAction","params":{"context":{"diagnostics":[],"triggerKind":2},"range":{"end":{"character":1,"line":13},"start":{"character":1,"line":13}},"textDocument":{"uri":"file:///user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu"}}}

I[23:51:48.235] <-- textDocument/codeAction(14)
V[23:51:48.235] ASTWorker running codeAction on version 1 of /user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu
I[23:51:48.235] --> reply:textDocument/codeAction(14) 0 ms
V[23:51:48.235] >>> {"id":14,"jsonrpc":"2.0","result":[]}

I[23:51:48.235] --> textDocument/clangd.fileStatus
V[23:51:48.235] >>> {"jsonrpc":"2.0","method":"textDocument/clangd.fileStatus","params":{"state":"idle","uri":"file:///user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu"}}

V[23:51:51.818] <<< {"id":15,"jsonrpc":"2.0","method":"textDocument/codeAction","params":{"context":{"diagnostics":[],"triggerKind":2},"range":{"end":{"character":1,"line":13},"start":{"character":1,"line":13}},"textDocument":{"uri":"file:///user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu"}}}

I[23:51:51.818] <-- textDocument/codeAction(15)
V[23:51:51.818] <<< {"id":16,"jsonrpc":"2.0","method":"textDocument/codeAction","params":{"context":{"diagnostics":[],"triggerKind":2},"range":{"end":{"character":1,"line":13},"start":{"character":1,"line":13}},"textDocument":{"uri":"file:///user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu"}}}

I[23:51:51.818] <-- textDocument/codeAction(16)
V[23:51:51.818] <<< {"id":17,"jsonrpc":"2.0","method":"textDocument/codeAction","params":{"context":{"diagnostics":[],"triggerKind":2},"range":{"end":{"character":1,"line":13},"start":{"character":1,"line":13}},"textDocument":{"uri":"file:///user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu"}}}

I[23:51:51.818] <-- textDocument/codeAction(17)
V[23:51:51.820] ASTWorker running codeAction on version 1 of /user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu
I[23:51:51.820] --> reply:textDocument/codeAction(15) 1 ms
V[23:51:51.820] >>> {"id":15,"jsonrpc":"2.0","result":[]}

V[23:51:51.820] ASTWorker running codeAction on version 1 of /user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu
I[23:51:51.820] --> reply:textDocument/codeAction(16) 1 ms
V[23:51:51.820] >>> {"id":16,"jsonrpc":"2.0","result":[]}

V[23:51:51.820] ASTWorker running codeAction on version 1 of /user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu
I[23:51:51.820] --> reply:textDocument/codeAction(17) 1 ms
V[23:51:51.820] >>> {"id":17,"jsonrpc":"2.0","result":[]}

I[23:51:51.820] --> textDocument/clangd.fileStatus
V[23:51:51.820] >>> {"jsonrpc":"2.0","method":"textDocument/clangd.fileStatus","params":{"state":"idle","uri":"file:///user/1/occhipie/Git/CUDA-Path-Tracer/src/error.cu"}}

V[23:51:51.864] <<< {"jsonrpc":"2.0","method":"$/cancelRequest","params":{"id":15}}

I[23:51:51.864] <-- $/cancelRequest
V[23:51:51.864] <<< {"jsonrpc":"2.0","method":"$/cancelRequest","params":{"id":16}}

I[23:51:51.864] <-- $/cancelRequest

@HighCommander4
Copy link
Contributor

Based on the log, it looks like the <cstdio> header itself is located fine, but for some reason it's not defining the symbol stderr.

I tried reproducing the issue locally but couldn't, so I don't have any specific ideas, but one direction of investigation I would suggest is to open <cstdio> in your editor (via go-to-def on the include) and then <stdio.h>, and look at the place where it defines stderr (likely a variable declaration like extern FILE *stderr;), and try to figure out why it's not having an effect; the most likely reason is that it ends up in an inactive preprocessor branch, in which case you can check what preprocessor condition is failing to evaluate to true. Clangd's inactive region highlighting feature (inactive preprocessor branches are rendered in lower opacity), and the ability to hover over a macro and see its value, can be helpful for this.

@eduardz1
Copy link
Author

eduardz1 commented Oct 28, 2024

Based on the log, it looks like the <cstdio> header itself is located fine, but for some reason it's not defining the symbol stderr.

I tried reproducing the issue locally but couldn't, so I don't have any specific ideas, but one direction of investigation I would suggest is to open <cstdio> in your editor (via go-to-def on the include) and then <stdio.h>, and look at the place where it defines stderr (likely a variable declaration like extern FILE *stderr;), and try to figure out why it's not having an effect; the most likely reason is that it ends up in an inactive preprocessor branch, in which case you can check what preprocessor condition is failing to evaluate to true. Clangd's inactive region highlighting feature (inactive preprocessor branches are rendered in lower opacity), and the ability to hover over a macro and see its value, can be helpful for this.

Note that cstdio is also not underlined so go to definition doesn't work when the file format is .cu instead of .cpp.

When I go to definition with the file renamed in .cpp I don't see anything strange in it, it's really just the clangd server not recognizing cpp headers with the .cu extension.

@HighCommander4
Copy link
Contributor

Note that cstdio is also not underlined so go to definition doesn't work when the file format is .cu instead of .cpp.

Interesting. I do see in the log that it's not included in the textDocument/documentLinks response (which is where vscode gets what to underline), so that's consistent with go-to-def on it not working, and I guess also symbols defined in the file not being resolved. But then I don't understand why the diagnostics do not include a "file not found" error for it.

As I can't reproduce the issue myself, I'm not sure how to investigate further. Maybe someone else has ideas.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants