我是一個嘗試使用KLEE的初學者。 我正在使用KLEE自包含軟件包在 使用pthreads的C++程序上。 我已經生成.o文件,並使用KLEE使用下列選項使用pthreads的C++代碼的KLEE
klee --libc=uclibc --posix-runtime test.o
但我知道我得到警告
KLEE: NOTE: Using model:
/home/pgbovine/klee/Release+Asserts/lib/libkleeRuntimePOSIX.bca
KLEE: output directory = "klee-out-4"
KLEE: WARNING: undefined reference to function: klee_get_valuel
KLEE: WARNING: undefined reference to function: pthread_create
KLEE: WARNING: undefined reference to function: pthread_exit
KLEE: WARNING: undefined reference to function: pthread_join
KLEE: WARNING: executable has module level assembly (ignoring)
KLEE: WARNING: calling external: syscall(54, 0, 21505, 571522624)
KLEE: WARNING: calling __user_main with extra arguments.
KLEE: WARNING: calling external: pthread_create(571589384, 0, 563903904, 571574176)
0 klee 0x08965ab8
[pid 1846] +++ killed by SIGSEGV +++
+++ killed by SIGSEGV +++
Segmentation fault
在.BC文件使用克利也給了我同樣的結果。
我不確定爲什麼我得到未定義的pthread函數參考。我是 不確定用於pthread的庫是否正確使用。有 有辦法確保這一點?使用llvm-ld也無濟於事。
下面是我用
llvm-ld tests.bc -l=/usr/lib/libpthread.a
我不知道爲什麼會出現分段故障發生LLVM-ld命令。該程序的工作原理 罰款時,我正常編譯程序g++
和運行 可執行文件。
有人能告訴我我要去哪裏嗎?