が見つからないと、私は単純なコードを書いた:KLEEが初期化されていない変数エラー私は今KLEEを勉強
#include "klee/klee.h"
#include <stdio.h>
#include <stdlib.h>
int test(int *p)
{
int *q = (int *) malloc(sizeof(int));
if ((*p) == (*q)) {
printf("reading uninitialized heap memory");
}
return 0;
}
int main()
{
int *p = (int *) malloc(sizeof(int));
test(p);
return 0;
}
まず、私はLLVMのビットコードを生成し、その後、私はビットコードにKLEEを実行します。 後は、すべての出力です:
KLEE: output directory is "/Users/yjy/WorkSpace/Test/klee-out-13"
Using STP solver backend
KLEE: WARNING: undefined reference to function: printf
KLEE: WARNING ONCE: calling external: printf(140351601907424)
reading uninitialized heap memory
KLEE: done: total instructions = 61
KLEE: done: completed paths = 4
KLEE: done: generated tests = 4
私はKLEEが私にq個のポインタが初期化されていないというエラーを与えるべきであると仮定しますが、それはしていません。 KLEEが私にこのことについてのエラーや警告を与えないのはなぜですか? KLEEはこのエラーを検出できませんか?前もって感謝します!