KLEE WARNING неопределенная функция
Я собрал Wireshark
в LLVM
Затем я начал ссылаться на некоторые библиотеки, которые я также собрал в LLVM
,
Библиотеки, которые я связывал, были libwsutil
, libz
а также libpcap
, Однако KLEE все еще дает мне предупреждение для неопределенной функции для libpcap
,
Я скомпилировал libpcap, используя эти флаги:
CC="llvm-gcc" CFLAGS="-flto -c" AR="llvm-ar" LD="llvm-ld"
Эти флаги работали и для других библиотек.
Что может быть причиной?
KLEE: WARNING ONCE: function "capture_loop_dispatch" has inline asm
KLEE: WARNING ONCE: function "__user_main" has inline asm
KLEE: WARNING: undefined reference to function: __ctype_b_loc
KLEE: WARNING: undefined reference to function: __xstat64
KLEE: WARNING: undefined reference to function: bpf_image
KLEE: WARNING: undefined reference to function: cap_free
KLEE: WARNING: undefined reference to function: cap_init
KLEE: WARNING: undefined reference to function: cap_set_flag
KLEE: WARNING: undefined reference to function: cap_set_proc
...
...
KLEE: WARNING: undefined reference to function: lseek64
KLEE: WARNING: undefined reference to function: pcap_activate
KLEE: WARNING: undefined reference to function: pcap_breakloop
KLEE: WARNING: undefined reference to function: pcap_can_set_rfmon
KLEE: WARNING: undefined reference to function: pcap_close
KLEE: WARNING: undefined reference to function: pcap_compile
KLEE: WARNING: undefined reference to function: pcap_create
KLEE: WARNING: undefined reference to function: pcap_datalink
KLEE: WARNING: undefined reference to function: pcap_datalink_name_to_val
KLEE: WARNING: undefined reference to function: pcap_datalink_val_to_description
KLEE: WARNING: undefined reference to function: pcap_datalink_val_to_name
KLEE: WARNING: undefined reference to function: pcap_dispatch
KLEE: WARNING: undefined reference to function: pcap_findalldevs
KLEE: WARNING: undefined reference to function: pcap_free_datalinks
KLEE: WARNING: undefined reference to function: pcap_freealldevs
KLEE: WARNING: undefined reference to function: pcap_freecode
KLEE: WARNING: undefined reference to function: pcap_get_selectable_fd
KLEE: WARNING: undefined reference to function: pcap_geterr
KLEE: WARNING: undefined reference to function: pcap_lib_version
KLEE: WARNING: undefined reference to function: pcap_list_datalinks
KLEE: WARNING: undefined reference to function: pcap_lookupnet
KLEE: WARNING: undefined reference to function: pcap_open_live
KLEE: WARNING: undefined reference to function: pcap_set_buffer_size
KLEE: WARNING: undefined reference to function: pcap_set_datalink
KLEE: WARNING: undefined reference to function: pcap_set_promisc
KLEE: WARNING: undefined reference to function: pcap_set_rfmon
KLEE: WARNING: undefined reference to function: pcap_set_snaplen
KLEE: WARNING: undefined reference to function: pcap_set_timeout
KLEE: WARNING: undefined reference to function: pcap_setfilter
KLEE: WARNING: undefined reference to function: pcap_snapshot
KLEE: WARNING: undefined reference to function: pcap_stats
KLEE: WARNING: undefined reference to function: pcap_statustostr
KLEE: WARNING: undefined reference to function: prctl
1 ответ
Прочитайте раздел "Начало работы" KLEE в разделе " Начало работы".
По умолчанию KLEE работает с закрытыми программами (программами, которые не используют какой-либо внешний код, такой как функции библиотеки C). Однако, если вы хотите использовать KLEE для запуска реальных программ, вам нужно включить среду выполнения KLEE POSIX, которая построена поверх библиотеки uClibc C.
Таким образом, KLEE не может использовать библиотеку C по умолчанию, если вы используете KLEE с опцией libc=uclibc
KLEE свяжет внешнюю функцию с вашим IR-кодом и выполнит IR-код