我已经下载了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分析期间有/没有头文件的区别。
实际上,我正在将cppcheck的报告与声纳集成在一起,声纳的仪表板会包含任何差异吗?
包括头文件后,即使我使用-j 4和max-config到2个选项,也花了5天(大约)的时间完成了分析。
并感到困惑的是,在包括了要分析的头文件之后,LOC有所减少。我可以看到函数,类减少到几个。
cppcheck是否在头文件上出错?如果是,将应用哪些规则?我在哪里可以找到此信息以及与头文件相关联的规则?
请帮忙。
谢谢,Dinesh
我的下面的代码工作正常,但仍然"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)
任何人都可以帮我解决这个问题吗?
这是一条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)
问题是什么?我该如何解决?
谢谢。
当我使用声纳 - 跑步者时,声纳不启动cppcheck.我在ubuntu 12.04中使用了最后一个版本(声纳,c ++社区pluguin和声纳 - 跑步者).
如果某人的声纳与cppcheck正常工作(以及其他插件,但现在我只需要cppcheck),请告诉我如何请.
在项目的声纳仪表板中出现代码行数,注释,质量指数,技术债务......以及规则合规性出现在100%并且不是这样,因为项目有cppcheck错误.我确定声纳不启动cppcheck因为运行cppcheck需要1-2分钟,而声纳运行器在cppcheck部分显示0ms.
谢谢!
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) 我正在为 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) 我有这样的代码:
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 的存储中,因此不会发生泄漏。
这会带来一些真正的问题还是误报?
目前我有一个多分支管道作业,其中构建发生,cppcheck用于分析代码.但是,multibranch管道中没有"post build actions"选项卡可用于启用"发布cppcheck结果".我一直在网上寻找答案,但我找不到.
只有通用,构建触发器,高级项目选项和管道选项卡可用(我推荐了高级项目选项,没有选项可以在那里添加后期构建部分).
有没有办法使用jenkinsfile本身对cppcheck.xml发布进行硬编码?有没有我可以使用的语法将调用cppcheck插件来检查xml文件并发布它.这确实是一个紧急要求.我尝试了很多搜索将xml转换为其他格式,如html或jnuit xml.似乎没什么用.有人可以帮忙吗?
groovy cppcheck jenkins jenkins-pipeline multibranch-pipeline
我面临的情况是我需要通过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的值.
我只是使用 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) cppcheck ×11
c++ ×6
file-pointer ×1
filehandle ×1
groovy ×1
jenkins ×1
sonarqube ×1
sonarqube5.1 ×1
vscode-tasks ×1