使用Frama-c可以检测内存泄漏还是双重释放? 我试过测试那个例子但是
#include <string.h>
#include <stdlib.h>
#define FRAMA_C_MALLOC_STACK
#include "/usr/share/frama-c/libc/fc_runtime.c"
int main()
{
int *x = malloc(sizeof(int));
free(x);
free(x);
return 0;
}
我明白了:
现在我正在使用从Fluorine-20130601复制的版本:Neon-20140301和 libc (顺便说一下为什么fc_runtime.c和其他* .c文件从Neon版本中删除?)
命令:
frama-c-gui -cpp-command "gcc -C -E -I/usrhare/frama-c/libc/ -nostdinc" -slevel 1000 -val -val-warn-copy-indeterminate @all main.
使用其他定义(FRAMA_C_MALLOC_XXXX)有效,但没有检测到任何错误。
更新: 其他例子
#include <string.h>
#include <stdlib.h>
#define FRAMA_C_MALLOC_STACK
#include "/usr/share/frama-c/libc/fc_runtime.c"
int main()
{
int *x = malloc(sizeof(int));
x[2] = 5;
return 0;
}