源代码静态分析工具

代码写的不严谨,常常会让你的软件出现很多不可预测的错误,而且这种错误有时会表现的很随机性,

这会给你分析和定位问题带来难度。

 

我们可以利用一些优秀的源代码静态分析工具帮助我们检查很多诸如变量未初始化、内存泄漏、空指针引用、

缓冲区溢出以及数组越界等很多编程时可能会不经意犯下的错误,让软件更加稳定和健壮。

比较有名的工具有klocwork、lint等。

 

案例一内存泄漏之检查:

p1 = malloc(10);
if (p1 == null)
{
return;
}

p2 = malloc(20);
if (p2 == null)
{
return;
}

 

案例二数组越界之检查:

int a[10] = {0};
a[10] = 0x20;

 

案例三空指针引用之检查:

char* ps_name = null;
char s_name[10] = “my_name”
memcpy(ps_name, s_name, 10);

 

案例四缓冲区溢出之检查:

p1 = malloc(10);
char s_name[20] = “my name is vector”;
strcpy(p1, s_name);

 

虽然编程出错总是无法避免的,但是我们仍然要养成良好的编程习惯,

尽量减少这种错误,努力提升软件质量。

标签