标签: cppcheck

如何在gcc编译器中构建cppcheck工具?

我已经下载了cppcheck工具并构建它.现在我正面临着找不到cppcheck命令的问题.有没有错误......告诉我步骤..

我在gcc编译器中尝试过如下:

> cd /home/tcsujth/Desktop/cppcheck-1.46.1/
> g++ -o cppcheck -Ilib cli/*.cpp lib/*.cpp
> ./cppcheck
SYNTAX----------
cppcheck: error: could not find or open any of the paths given.
Segmentation fault (core dumped)
> cppcheck --version
cppcheck: Command not found.

cppcheck

2
推荐指数
1
解决办法
5629
查看次数

包括头文件进行分析之后,请告诉我有关cppcheck的用途或工作方式

请告诉我在cppcheck分析期间有/没有头文件的区别。

实际上,我正在将cppcheck的报告与声纳集成在一起,声纳的仪表板会包含任何差异吗?

包括头文件后,即使我使用-j 4和max-config到2个选项,也花了5天(大约)的时间完成了分析。

并感到困惑的是,在包括了要分析的头文件之后,LOC有所减少。我可以看到函数,类减少到几个。

cppcheck是否在头文件上出错?如果是,将应用哪些规则?我在哪里可以找到此信息以及与头文件相关联的规则?

请帮忙。

谢谢,Dinesh

cppcheck sonarqube5.1

2
推荐指数
1
解决办法
140
查看次数

cppcheck:可能的空点取消引用

我的下面的代码工作正常,但仍然"cppcheck"发出警告,

Either the condition 'mem_limit_str!=0' is redundant or there is possible null pointer dereference: mem_limit_str.
Run Code Online (Sandbox Code Playgroud)

下面是代码,

 if (mem_limit_str!= NULL) //CPPCHECK error
                free(mem_limit_str);
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我解决这个问题吗?

c++ cppcheck

2
推荐指数
1
解决办法
437
查看次数

cppcheck 的警告,“隐藏具有相同名称的 typedef”

这是一条cppcheck警告消息。
变量 'BUFFER_INFO' 隐藏同名的 typedef

BUFFER_INFO 定义如下。

typedef struct tagBufferInfo
{
    CRITICAL_SECTION cs;
    Buffer* pBuffer1;
    Buffer* pBuffer2;
    Buffer* pLoggingBuffer;
    Buffer* pSendingBuffer;
}BUFFER_INFO, *PBUFFER_INFO;
Run Code Online (Sandbox Code Playgroud)

我写道,

PBUFFER_INFO p = new BUFFER_INFO; // causes the warning.
Run Code Online (Sandbox Code Playgroud)

问题是什么?我该如何解决?
谢谢。

c++ static-analysis cppcheck

1
推荐指数
1
解决办法
1365
查看次数

在声纳中使用C++社区插件的问题.Cppcheck不起作用

当我使用声纳 - 跑步者时,声纳不启动cppcheck.我在ubuntu 12.04中使用了最后一个版本(声纳,c ++社区pluguin和声纳 - 跑步者).

如果某人的声纳与cppcheck正常工作(以及其他插件,但现在我只需要cppcheck),请告诉我如何请.

在项目的声纳仪表板中出现代码行数,注释,质量指数,技术债务......以及规则合规性出现在100%并且不是这样,因为项目有cppcheck错误.我确定声纳不启动cppcheck因为运行cppcheck需要1-2分钟,而声纳运行器在cppcheck部分显示0ms.

谢谢!

cppcheck sonarqube

1
推荐指数
1
解决办法
3673
查看次数

cppcheck认为alloc和dealloc存在不匹配

cpp-check错误是: error mismatchAllocDealloc false Mismatching allocation and deallocation: val2

我该怎么做才能解决这个错误?

void MainWindow::ParseDemo(char *pBuf)
{
  char* val2 = new char[256];
  for (int i = 0; i < 254; i++)
  {
     val2[i] = pBuf[i+305];
  }
  val2[254] = 0; // 0-Termination
  QString sunit(val2);
  DoStuff(sunit);
  delete val2;
  // ... 
}
Run Code Online (Sandbox Code Playgroud)

c++ cppcheck

1
推荐指数
1
解决办法
2252
查看次数

如何在 vscode 中为 cppcheck 任务定义问题匹配器?

我正在为 vscode 设置一个“cppcheck”任务。它有效,但问题匹配器无法捕获问题。

我尝试过“$gcc”问题匹配器以及一些自定义配置。

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "cppcheck",
            "type": "shell",
            "command": "cppcheck --template=gcc --enable=style --project=${workspaceFolder}/build/compile_commands.json",
            "problemMatcher": "$gcc",
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

或这个:

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "cppcheck",
            "type": "shell",
            "command": "cppcheck --template=gcc --enable=warning src/jc_certreq.cpp",
            "problemMatcher": {
                "owner": "cpp",
                "fileLocation": "absolute",
                "pattern": {
                    "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
                    "file": 1,
                    "line": 2,
                    "column": 3,
                    "severity": 4, …
Run Code Online (Sandbox Code Playgroud)

cppcheck visual-studio-code vscode-tasks

1
推荐指数
1
解决办法
1107
查看次数

资源泄漏或误报

我有这样的代码:

std::string getInfo(FILE *fp)
{
    char buffer[30];
    if (fread(buffer, 19, 1, fp) == 1)
        buffer[19] = '\0';
    else
        buffer[0] = '\0';

    return buffer;
}
Run Code Online (Sandbox Code Playgroud)

我正在使用 cppcheck 进行静态分析,它会发出警告:

error: Resource leak: fp [resourceLeak]
 return buffer;
 ^
Run Code Online (Sandbox Code Playgroud)

在我看来,由于返回是按值计算的,因此数据将从“缓冲区”复制到 std::string 的存储中,因此不会发生泄漏。

这会带来一些真正的问题还是误报?

c++ static-analysis filehandle file-pointer cppcheck

1
推荐指数
1
解决办法
420
查看次数

如何使用jenkinsfile本身使jenkins发布cppcheck.xml?

目前我有一个多分支管道作业,其中构建发生,cppcheck用于分析代码.但是,multibranch管道中没有"post build actions"选项卡可用于启用"发布cppcheck结果".我一直在网上寻找答案,但我找不到.

只有通用,构建触发器,高级项目选项和管道选项卡可用(我推荐了高级项目选项,没有选项可以在那里添加后期构建部分).

有没有办法使用jenkinsfile本身对cppcheck.xml发布进行硬编码?有没有我可以使用的语法将调用cppcheck插件来检查xml文件并发布它.这确实是一个紧急要求.我尝试了很多搜索将xml转换为其他格式,如html或jnuit xml.似乎没什么用.有人可以帮忙吗?

groovy cppcheck jenkins jenkins-pipeline multibranch-pipeline

0
推荐指数
1
解决办法
2932
查看次数

cppcheck的棘手情况

我面临的情况是我需要通过cppcheck但有时会变得棘手.在这种情况下你通常做什么?例如.

#include<iostream>
using namespace std;
void fun1();
int fun2();
int main()
{
        fun1();
}

void fun1()
{
        int retVal;
        if (-1 == (retVal = fun2()))
        {
                cout <<"Failure. fun2 returned a -1"<< endl;
        }
}

int fun2()
{
        return -1;
}
Run Code Online (Sandbox Code Playgroud)

我们通常会看到如上所述的代码.cppcheck上面的文件会给出如下输出 -

cppcheck --suppress = redundantAssignment --enable ='警告,样式,性能,可移植性' - inline-suppr --language ='c ++'retval_neverused.cpp检查retval_neverused.cpp ... [retval_neverused.cpp:13] :( style)变量'retVal'被赋予一个从未使用过的值.

我不想仅仅为了cppcheck添加一些虚拟行打印retVal.事实上,它可能是我抛出异常的情况,我不希望异常在其中具有一些微不足道的值作为retVal的值.

c++ cppcheck

0
推荐指数
1
解决办法
93
查看次数

Cppcheck 可能的空指针取消引用:

我只是使用 cppcheck 代码工作正常只是 cppcheck 给出了这个错误。

void WorkerThread(WorkBuffer* m_buffer)
{
    std::cout << "Thread : " << m_buffer->m_id << ".....Starting" << std::endl;

    if (NULL == m_buffer)
        std::cout << "Thread : " << m_buffer->m_id << "......work buffer is null" << std::endl;


    while(!shut_down_flag)
    {
        int k = 0;
        //Sleep(1);
        SleepSystemUsec(100000);
        std::cout << "Thread : " << m_buffer->m_id << "....in while loop" << std::endl;
    } // of while(!shut_down_flag)

    std::cout << "Thread : " << m_buffer->m_id << ".....Request from main thread so ending working thread ...." …
Run Code Online (Sandbox Code Playgroud)

c++ cppcheck

-6
推荐指数
1
解决办法
4488
查看次数