天道酬勤,学无止境

如何在 Coverity Scan 中忽略 /usr/include?(How do I ignore /usr/include in Coverity Scan?)

问题

我已经建立了一个项目来使用 Coverity Scan。

分析设置→项目组件下我有

Component name  Pattern              Ignore in analysis     
cxxopts         .*/src/cxxopts.hpp         Yes  
STL             /usr/include/c++/.*        Yes  

但是当我去查看缺陷时,我仍然看到 9 个问题,全部来自/usr/include/c++/5.4.1/functional等文件。 我实际上如何排除它们?


令人困惑的是,概述选项卡显示

12 Total defects
2 Outstanding
7 Dismissed
3 Fixed

即使View 缺陷显示 9 个问题(那是 7+2 吗?为什么有些突出,有些被驳回,什么时候都应该忽略?)

回答1

它看起来像一个正则表达式模式,在这种情况下,“++”可能需要某种形式的转义。 我不确定哪种形式,因为我不知道如何解释字符串或使用哪种正则表达式语法,但以下一些变体应该可以工作:

/usr/include/c\+\+/.*
/usr/include/c\\+\\+/.*
/usr/include/c\\\+\\\+/.*

如果这些都不起作用,我建议联系 scan-admin@coverity.com(在扫描网站上列为问题的联系电子邮件)。

这也可以解释为什么概览显示这些文件的结果。

标签

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • How do I ignore /usr/include in Coverity Scan?
    I've set up a project to use Coverity Scan. Under Analysis Settings→Project Components I have Component name Pattern Ignore in analysis cxxopts .*/src/cxxopts.hpp Yes STL /usr/include/c++/.* Yes but still when I go to View defects I see 9 issues, all from files like /usr/include/c++/5.4.1/functional. How do I actually exclude them? Confusingly, the Overview tab shows 12 Total defects 2 Outstanding 7 Dismissed 3 Fixed even though View defects shows 9 issues (is that the 7+2? Why are some outstanding and some dismissed, when all should be ignored?)
  • 在 clang-tidy 中忽略系统标题(Ignore system headers in clang-tidy)
    问题 tldr;> 如何在 clang-tidy 中隐藏来自系统标题的警告? 我有以下最小的示例源文件,它会在系统标头中触发 clang-tidy 警告: #include <future> int main() { std::promise<int> p; p.set_value(3); } 在 Ubuntu 17.04 上使用 clang-tidy 4.0.0 使用 libstdc++ 7.0.1 调用它: $ clang-tidy main.cpp -extra-arg=-std=c++14 产量 Running without flags. 1 warning generated. /usr/lib/gcc/x86_64-linux-gnu/7.0.1/../../../../include/c++/7.0.1/mutex:693:5: warning: Address of stack memory associated with local variable '__callable' is still referred to by the global variable '__once_callable' upon returning to the caller. This will be a dangling reference [clang-analyzer
  • 如何正确引用 GNU readline 库来扫描终端输入?(How do I properly reference the GNU readline library to scan terminal input?)
    问题 我正在尝试编译在 GNU readline 中使用以下内容的 C 代码。 #include <readline/readline.h>; #include <readline/history.h>; 我尝试将<>更改为""并使用和不使用-lreadline选项进行编译。 似乎没有任何效果。 在gcc下不使用-lreadline进行编译时,编译时会生成以下内容(详细): Reading specs from /software/gcc-3.4.6-0/pkg/lib/gcc/i386-unknown-freebsd6.1/3.4.6/specs Configured with: ../gcc-3.4.6/configure --prefix=/software/gcc-3.4.6-0/pkg --disable-dependency-tracking --localstatedir=/var --disable-nls --program-suffix=34 --enable-shared --enable-version-specific-runtime-libs Thread model: posix gcc version 3.4.6 /software/gcc-3.4.6-0/pkg/libexec/gcc/i386-unknown-freebsd6.1/3.4.6
  • 如何抑制几个警告,但不是所有警告都来自库?(How to suppress several warnings but not all of them coming from libraries?)
    问题 一些库有问题,会引发很多警告,人们不想在每次编译时都收到,因为它会淹没有用的自己的应用程序警告和错误。 为了从库中抑制一种类型的警告或所有警告,解决方案来自andrewrjones,并在此处召回以方便(使用不同的示例使其有用): // Crypt++ #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-variable" #include "aes.h" #include "modes.h" #include "filters.h" #include "base64.h" #include "randpool.h" #include "sha.h" #pragma GCC diagnostic pop 正如andrewrjones所解释的, -Wall可用于抑制来自所包含库的所有警告。 但是我怎样才能只抑制几个警告,而不是全部? 我已经测试过将它们包含在字符串中,如下所示: #pragma GCC diagnostic ignored "-Wunused-variable -Wunused-function" 导致以下错误: warning: unknown option after '#pragma GCC diagnostic' kind [-Wpragmas] 或者在两行中:
  • 如何在 GCC 中显示“预处理”代码忽略包含(How to show 'preprocessed' code ignoring includes with GCC)
    问题 我想知道是否可以使用 gcc 输出“预处理”代码但“忽略”(不扩展)包括: ES 我得到了这个主要的: #include <stdio.h> #define prn(s) printf("this is a macro for printing a string: %s\n", s); int int(){ char str[5] = "test"; prn(str); return 0; } 我运行gcc -E main -o out.c 我有: /* all stdio stuff */ int int(){ char str[5] = "test"; printf("this is a macro for printing a string: %s\n", str); return 0; } 我只想输出: #include <stdio.h> int int(){ char str[5] = "test"; printf("this is a macro for printing a string: %s\n", str); return 0; } 或者,至少,只是 int int(){ char str[5] = "test"; printf("this is a macro for printing a string: %s\n", str); return 0;
  • Catalina C++:使用标头产生错误:全局命名空间中没有名为“signbit”的成员(Catalina C++: Using <cmath> headers yield error: no member named 'signbit' in the global namespace)
    问题 从 Mojave 升级到 Catalina 后,在 env 中设置:/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk。 我无法编译使用<cmath>标头的程序。 我尝试更改 CFLAGS、CCFLAGS、CXXFLAGS 以指向 MacOSSDK 位置,但没有任何改变 Scanning dependencies of target OgreMain /Applications/Xcode.app/Contents/Developer/usr/bin/make -f OgreMain/CMakeFiles/OgreMain.dir/build.make OgreMain/CMakeFiles/OgreMain.dir/build [ 0%] Building CXX object OgreMain/CMakeFiles/OgreMain.dir/src/OgreASTCCodec.cpp.o cd /Users/roman/Downloads/ogre-1.12.2/build/OgreMain && /Applications/Xcode.app/Contents/Developer/Toolchains
  • 在python bindings/clang中的get-includes中解析cpp文件时过滤目录(Filtering directories when parsing cpp files in get-includes in python bindings/clang)
    问题 我应该编写一个 python-clang 解析器,它返回 cpp 文件中的所有包含内容。 所以我使用 sth 像下面的代码: def _main(): from clang.cindex import Index from optparse import OptionParser filter=['/usr/lib','usr/include'] p=OptionParser() (o,a)=p.parse_args() i=Index.create() t=i.parse(None,a) for i in t.get_includes(): print i.include if __name__=='__main__': _main() 现在我只需要过滤一些包含物,如特定目录: filter=['/usr/lib','usr/include'] 问题 1:我想知道如何进行这种过滤以及我的代码应该如何更改? 问题 2:如何制作一个配置文件来包含所有这些过滤器目录,而不是仅仅将它们硬编码? 运行测试:您需要有一个 cpp 文件,例如: #include<iostream> #include"ex1.h" int main(){ return 0; } 和 *.h 文件: #include<QMap> 跑: ./python-clang.py ex1.cpp 结果样本: /usr
  • 在 Mac OS X Yosemite 10.10.1 上包含搜索路径(Include search path on Mac OS X Yosemite 10.10.1)
    问题 我只是为了改变包含搜索路径的顺序(我相信)。 我想更改包含搜索路径。 特别是,我首先需要/usr/local/include 。 但它不会因为重复而改变。 我怎样才能改变它? 我想有默认设置,因为出现了我没有指定的路径。 像/usr/include/c++/4.2.1 , /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.0/include "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang" -cc1 -triple x86_64-apple-macosx10.10.0 -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -main-file-name test_common.cpp -mrelocation-model pic -pic-level 2 -mdisable-fp-elim -masm-verbose -munwind-tables -target-cpu core2 -target-linker
  • How do I properly reference the GNU readline library to scan terminal input?
    I am attempting to compile C code that utilizes the following within GNU readline. #include <readline/readline.h>; #include <readline/history.h>; I've tried changing the <> to "" and compiling both with and without the -lreadline options. Nothing seems to work. When compiling without -lreadline under gcc results in the following being generated while compiling (verbose): Reading specs from /software/gcc-3.4.6-0/pkg/lib/gcc/i386-unknown-freebsd6.1/3.4.6/specs Configured with: ../gcc-3.4.6/configure --prefix=/software/gcc-3.4.6-0/pkg --disable-dependency-tracking --localstatedir=/var --disable
  • 如何包含 draco_dec 库?(how to include the draco_dec library?)
    问题 我想为我的 c++ 项目包含 draco 库,并且我在 ubuntu 上用 cmake 构建了 draco。 当我尝试添加任何 draco 标头时,我看到“包含错误”。 我试图编译头文件,这个命令适用于一些 drace 头文件,但没有找到很多。 g++ -I "\\wsl$\Ubuntu\home\antmedia\draco\src\draco" ObjContainer.cpp 错误:“没有这样的文件或目录#include“draco/compression/config/compression_shared.h” 我在 draco 自述文件中看到了这一点。 但我没有得到它。 " 如果您想为您的应用程序添加解码功能,您将需要包含 draco_dec 库。" 这是什么意思? 如何添加 draco_dec 库? 之后,尝试 - v: Using built-in specs. COLLECT_GCC=g++ COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper OFFLOAD_TARGET_NAMES=nvptx-none OFFLOAD_TARGET_DEFAULT=1 Target: x86_64-linux-gnu Configured with: ../src/configure -v -
  • 如何设置 Travis/Rails 项目以提交给 Coverity Scan?(How to setup a Travis/Rails project to submit to Coverity Scan?)
    问题 我正在为 rails 应用程序寻找 std travis 覆盖设置。 我当前的 .travis.yml 文件如下所示: # environment settings env: - DB=sqlite - DB=mysql - DB=postgresql env: global: # The next declaration is the encrypted COVERITY_SCAN_TOKEN, created # via the "travis encrypt" command using the project repo's public key - secure: "<SECURE>" # project language language: ruby rvm: - 2.3.1 # branches to build (whitelist) branches: only: - master - coverity_scan - testing # command to run before install before_install: - echo -n | openssl s_client -connect scan.coverity.com:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' |
  • 如何从coverity-scan中删除项目(how to remove a project from coverity-scan)
    问题 我过去用coverity-scan注册了一个项目。 我现在想从coverity-scan(或至少从我的仪表板中删除该项目;但我最好完全删除该项目)。 我被卡住了,因为网络界面中似乎没有这样的选项。 我错过了什么吗? 回答1 你不能。 我刚刚要求 Coverity 的支持删除一个并得到答复: 我们通常不会从 SCAN 中删除项目,因为我们会保留项目的汇总指标。 回答2 在“项目设置”页面的最底部有一个“删除您的项目”按钮。 回答3 删除您的项目按钮仅对项目管理员可用,并且仅当构建尚未提交进行分析时才可用。
  • ImportError:没有名为PytQt5的模块(ImportError: No module named PytQt5)
    问题 以下是我的python,qt和sip版本 root@thura:~# python -V Python 2.7.3 root@thura:~# qmake --version QMake version 3.0 Using Qt version 5.0.2 in /usr/lib/i386-linux-gnu root@thura:~# sip -V 4.15.3 我试图通过以下方式导入PyQt5 from PyQt5.QtWidgets import QtGui, QtCore 我收到以下错误 ImportError:没有名为PyQt5.QtWidgets的模块 我该如何解决这个错误。 更新===================== 当我尝试使用PyQt4时,出现以下错误。 从PyQt4.QtCore导入pyqtSlot作为Slot RuntimeError:sip模块将API v10.0实现为v10.1,但是PyQt4.QtCore模块需要API v8.1 2013年12月20日更新===================================== 1)从这里下载sip-4.15.3.tar.gz 2)解压缩sip-4.15.3.tar.gz 3)将sip-4.15.3复制到/ home / thura 4)输入“ cd /home/thura/sip-4.15
  • 如何在Linux中找到C编程语言的头文件?(How can I find the header files of the C programming language in Linux?)
    问题 当我用Linux编写C程序,然后使用gcc编译它们时,我总是对那些头文件在哪里感到好奇。 例如, stdio.h在哪里。 更一般而言, stdbool.h在哪里? 我不仅想知道它在哪里,而且还想知道如何获得这些地方,例如,使用shell命令或使用C编程语言。 回答1 gcc -H ...将打印每个包含文件的完整路径,作为常规编译的副作用。 除了使用-fsyntax-only外,不要创建任何输出(它仍会告诉您程序是否有错误)。 示例(Linux,gcc-4.7): $ cat > test.c #include <stdbool.h> #include <stdio.h> ^D $ gcc -H -fsyntax-only test.c . /usr/lib/gcc/x86_64-linux-gnu/4.7/include/stdbool.h . /usr/include/stdio.h .. /usr/include/features.h ... /usr/include/x86_64-linux-gnu/bits/predefs.h ... /usr/include/x86_64-linux-gnu/sys/cdefs.h .... /usr/include/x86_64-linux-gnu/bits/wordsize.h ... /usr/include/x86_64
  • 如何在OSX Lion上使用clang 3.2编译C ++ 11?(How to compile C++11 with clang 3.2 on OSX lion?)
    问题 我正在尝试编译依赖C ++ 11 <thread>标头的以下C ++程序。 我正在尝试在OSX Lion上执行此操作。 #include <iostream> #include <thread> #include <vector> void hello() { std::cout << "Hello from thread " << std::this_thread::get_id() << std::endl; } int main() { std::vector<std::thread> threads; for(int i = 0; i < 5; i++) { threads.push_back(std::thread(hello)); } for(auto& thread: threads) { thread.join(); } return 0; } 上面的程序可以用我使用自制软件包管理器安装的g ++ 4.7很好地编译。 但是,当尝试使用clang 3.2编译以上程序时(也使用自制程序包管理器安装了该程序),我收到以下错误消息: Zameers-MacBook-Air:tmp zmanji$ clang++ -v -std=c++11 test.cpp clang version 3.2 (tags/RELEASE_32/final) Target: x86_64
  • 由于不支持的 gcc 编译器版本,Caffe 编译失败(Caffe compilation fails due to unsupported gcc compiler version)
    问题 我在 Caffe 编译上挣扎。 不幸的是我没有编译它。 我遵循的步骤: git clone https://github.com/BVLC/caffe.git cd caffe mkdir build cd build cmake .. make all 运行make all失败并显示以下错误消息: [ 2%] Building NVCC (Device) object src/caffe/CMakeFiles/cuda_compile.dir/util/cuda_compile_generated_im2col.cu.o In file included from /usr/include/cuda_runtime.h:59:0, from <command-line>:0: /usr/include/host_config.h:82:2: error: #error -- unsupported GNU version! gcc 4.9 and up are not supported! #error -- unsupported GNU version! gcc 4.9 and up are not supported! ^ CMake Error at cuda_compile_generated_im2col.cu.o.cmake:207 (message)
  • 由于不支持的 gcc 编译器版本,Caffe 编译失败(Caffe compilation fails due to unsupported gcc compiler version)
    问题 我在 Caffe 编译上挣扎。 不幸的是我没有编译它。 我遵循的步骤: git clone https://github.com/BVLC/caffe.git cd caffe mkdir build cd build cmake .. make all 运行make all失败并显示以下错误消息: [ 2%] Building NVCC (Device) object src/caffe/CMakeFiles/cuda_compile.dir/util/cuda_compile_generated_im2col.cu.o In file included from /usr/include/cuda_runtime.h:59:0, from <command-line>:0: /usr/include/host_config.h:82:2: error: #error -- unsupported GNU version! gcc 4.9 and up are not supported! #error -- unsupported GNU version! gcc 4.9 and up are not supported! ^ CMake Error at cuda_compile_generated_im2col.cu.o.cmake:207 (message)
  • 如何在虚拟环境中安装 SIP 和 PyQt?(How to install SIP and PyQt on a virtual environment?)
    问题 我是virtualenv新手。 我想安装 spyder,它需要PyQt4 ,它需要SIP 。 pip不起作用,所以我下载了SIP ,并执行了以下命令: python configure.py make make install 但我收到了这个错误: make[1]: entrant dans le répertoire « /stck2/stck2.2/ptoniato/python/pip/virtualenv-1.10.1/provaenv/build/SIP/sipgen » cp -f sip /stck2/stck2.2/ptoniato/python/pip/virtualenv-1.10.1/provaenv/bin/sip make[1]: quittant le répertoire « /stck2/stck2.2/ptoniato/python/pip/virtualenv-1.10.1/provaenv/build/SIP/sipgen » make[1]: entrant dans le répertoire « /stck2/stck2.2/ptoniato/python/pip/virtualenv-1.10.1/provaenv/build/SIP/siplib » cp -f sip.so /stck2/stck2.2/ptoniato
  • 交叉编译器默认包含路径设置(Cross compiler default include path setup)
    问题 首先,一些背景知识:我正在尝试在 Beagleboard-xM 上为 Android 编写驱动程序和应用程序。 我已经下载了他们的 android 开发工具包,安装了它,并且可以使用 http://processors.wiki.ti.com/index.php/TI-Android-ICS-4.0.3-DevKit 上的说明成功构建其中的所有内容-3.0.0_开发者指南 我已经能够按照 http://tldp.org/LDP/lkmpg/2.6/lkmpg.pdf 中的步骤制作我自己的骨架内核模块而没有问题。 我可以将 .ko 文件复制到 android 设备、insmod、rmmod 等。 我厌倦了默认构建提供的基本 shell,并认为我会添加 busybox。 我尝试按照 http://omappedia.org/wiki/Android_Installing_Busybox_Command_Line_Tools 上的说明进行操作,但在标准 libc 头文件上出现编译错误。 在仔细研究之后,我确定 TI android 开发套件中提供的预构建交叉编译器没有搜索正确的路径。 我通过创建我自己的 .c 文件来确认这一点,该文件包含并尝试使用arm-eabi-gcc blah.c -o blah编译它并遇到相同的结果(无法找到有问题的头文件) 'arm-eabi-gcc
  • 如何安装 clang 预构建的二进制文件 ubuntu 12.04(How to install clang pre-built binaries ubuntu 12.04)
    问题 我对 linux 很陌生,不知道我需要在哪里放置 Clang 预构建的二进制文件 http://llvm.org/releases/download.html#3.3 。 我下载它,用鼠标解压,然后将 /bin 的路径添加到我的 $PATH,将 /lib 的路径添加到 $LD_LIBRARY_PATH,并将带有我的 /lib 路径的 *.conf 添加到 /etc/ld.so.conf.d . 我什至重新启动了我的笔记本。 ...但仍然无法使用 Code::Blocks GCC 构建我的简单程序(错误:/home/aadgrand/tmp/LLVM-3.3/final/llvm.src/lib/Support/Signals.cpp - 对 `dladdr' 的未定义引用)。 测试程序文本: #include <iostream> #include "llvm/IR/Module.h" #include "llvm/IR/LLVMContext.h" using namespace std; int main() { llvm::LLVMContext &c = llvm::getGlobalContext(); // error line cout << "Never printed" << endl; return 0; } 我还需要做什么? 也许我需要使用 *.sig