어제 나는 stackoverflow에 대한 질문을했지만 명확하게 설명하지 않았으므로 묻는 방법이 바뀌고 문제가 명확해질 수 있습니다.klee가 Objectfile을 실행할 때 sleep() 함수가 작동하지 않는 이유는 무엇입니까?
/*
* First KLEE tutorial: testing a small function
*/
#include <unistd.h>
int get_sign(int x) {
if (x == 0)
return 0;
if (x < 0)
return -1;
else
return 1;
}
int main() {
int a;
klee_make_symbolic(&a, sizeof(a), "a");
sleep(10);
return get_sign(a);
}
내가 "llvm-gcc
"컴파일 사용은 다음과 같이 첫째, 나는 클레가 제공하는 예제 get_sign.c을 수정, 나는 프로그램에서 unistd.h
을 포함하고, 스레드 일시 정지를 만들기 위해 기능을 sleep()
를 호출 get_sign.c을 실행 한 다음 klee get_sign.o
을 사용하여 오브젝트 파일을 실행하십시오. 스레드가 일시 중지하지 않으면 sleep()
이 작동하지 않습니다. 나는이 klee --libc=uclibc get_sign.o
처럼 get_sign.o을 실행할 때 그래서 내가 인수를 추가, 불행하게도, 스레드는 아직도 내가이 문제를 해결하기 위해 할 수있는 일, 또한, 클레는 오류가보고,
KLEE: ERROR: /home/lab/work/klee-uclibc/libc/signal/sigaction.c:58: failed external call: __syscall_rt_sigaction
KLEE: NOTE: now ignoring this error at this location
을 중단하지 않습니다 문제? 고맙습니다!