-
Notifications
You must be signed in to change notification settings - Fork 384
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
files with a path that contains '@' are skipped #3463
Comments
@ferkulat Do you see anything when you run the analysis ( |
I was able to reproduce it in a toy project:
The file |
I think we skip compilation commands in this part of the source code but I don't know why: codechecker/analyzer/codechecker_analyzer/buildlog/log_parser.py Lines 1313 to 1316 in d2db1b4
On Windows CodeChecker is not really tested. |
I could even reproduce it on linux with the same result:
Before submitting this issue, I wanted to debug it myself. |
The installation steps can be found here: https://github.com/Ericsson/codechecker#linux If you want to develop CodeChecker the only difference in these steps is that you have to install our developement environment instead of production. So instead of |
@csordasmarton I could debug to the part where it skips files that have an |
@csordasmarton If I understand it correctly, the file name of a response file starts with an |
See: https://llvm.org/docs/CommandLine.html#response-files
I think we can change this line to check whether a file starts with a
|
Instead of checking for `@` in the file name, check if a file name starts with `@`. Fixes Ericsson#3463. Codechecker supports response files. These are files which you can pass to clang to work around limits in command line length. Those files names start with a `@`. The CI/CD solution "Jenkins" creates workspaces by putting `@` in the path name. A file entry in compile_commands.json could look like: "file": "/home/workspace/branchname@2/somefile.cpp" In this case all files in the compile data base are treated as response file. And the analyzer skips all files and does nothing. With the help of @csordasmarton this got fixed by checking if a file starts with an `@`.
Describe the bug
Given a compilation_database.json where all file paths contain a '@'.
For example:
The
command
is removed because of company internals. But it also had an '@' in there.Codechecker prints:
CodeChecker version
6.17.0
Desktop (please complete the following information)
Additional context
those paths are used on jenkins to create workspaces
Please notice:
The original compile_commands.json has
\
in all paths. Those get replaced with/
before passing it to Codechecker.Otherwise the jenkins plugin 'warnings-ng' would not find and display them in the UI.
But as long as there are no
@
in there, it works.The text was updated successfully, but these errors were encountered: