Hello All,
I am also facing the same issue with
llvmerror: invalid argument to evalConstant().
Can somebody please help me with how klee should handle
llvm::blockaddress and llvm::indirectbr?
Thanks
Sandeep
On 08/23/2015 03:01 AM, Sandeep Dasgupta wrote:
Hello,
For the last error, the invalid argument to evalConstatnt is a
llvm::blockaddress which is used to initialize globals , but klee does
not seem to handle this.
From
http://blog.llvm.org/2010/01/address-of-label-and-indirect-branches.html,
it is mentioned that this construct along with llvm::indirectbr are
added to llvm 2.7+.
So one may use llvm2.6 to generate python linked bc and use klee
(compiled with llvm 2.6) to interpret it.
Please let me know if there is better way to handle this.
Regards,
Sandeep
On 08/17/2015 08:04 AM, Dipanjan Das wrote:
Hi,
On 17 August 2015 at 20:58, Sven <[email protected]
<mailto:[email protected]>> wrote:
KLEE: WARNING ONCE: function "PyOS_string_to_double" has inline asm
Means that there is asm code used inside the C. This is not
supported by asm, so you will not be able to execute this
symbolically.
What is the workaround to execute code containing inline ASM?
KLEE: WARNING: undefined reference to function: cos
Means that the function "cos" is used, but the definition is not
in the bitcode. If you compile the bitcode to machine code, the
function will be linked directly. If you run the bitcode in C, it
is missing and, again, can not be executed symbolically.
You should give each of those functions a look. Maybe you can
find the code somewhere and compile it to bitcode yourself. Or
you can replace the call with a function with similar semantics,
which does exist in bitcode.
Did you compile against klee's version of ulibc? Some of the
undefined functions look like they may be in there. The POSIX
environment model may be helpful as well. The floating-point
functions (atan, cos) are simply not there, as klee does not
support floats. The dlopen, dlsym and dlerror are used to open
external libraries. Those are not there as bitcode, so klee will
not be able to execute them symbolically.
I executed klee like this: klee --libc=uclibc --posix-runtime
python.bc -h
Is there any hack to make supply klee the bitcode for 'cos' function
or the similar ones?
On 08/17/2015 05:00 AM, Dipanjan Das wrote:
Hi Everybody,
I compiled Python with llvm-gcc to generate LLVM bitcode to be run on top
of KLEE. Though python.bc gets generated successfully, KLEE throws a bunch
of warnings during execution. Moreover, there's an LLVM error at the end
that causes KLEE to abort: "LVM ERROR: invalid argument to evalConstant()".
Does anybody have any clue on this?
KLEE: WARNING ONCE: function "PyOS_string_to_double" has inline asm
KLEE: WARNING ONCE: function "PyOS_double_to_string" has inline asm
KLEE: WARNING: undefined reference to function: __ctype_b_loc
KLEE: WARNING: undefined reference to function: __finite
KLEE: WARNING: undefined reference to function: __isinf
KLEE: WARNING: undefined reference to function: __xstat64
KLEE: WARNING: undefined reference to function: alarm
KLEE: WARNING: undefined reference to function: atan2
KLEE: WARNING: undefined reference to function: bind_textdomain_codeset
KLEE: WARNING: undefined reference to function: bindtextdomain
KLEE: WARNING: undefined reference to function: copysign
KLEE: WARNING: undefined reference to function: cos
KLEE: WARNING: undefined reference to function: dcgettext
KLEE: WARNING: undefined reference to function: dgettext
KLEE: WARNING: undefined reference to function: dlerror
KLEE: WARNING: undefined reference to function: dlopen
KLEE: WARNING: undefined reference to function: dlsym
KLEE: WARNING: undefined reference to function: exp
KLEE: WARNING: undefined reference to function: fabs
KLEE: WARNING: undefined reference to function: faccessat
KLEE: WARNING: undefined reference to function: fchmodat
KLEE: WARNING: undefined reference to function: fchownat
KLEE: WARNING: undefined reference to function: fdopendir
KLEE: WARNING: undefined reference to function: fexecve
KLEE: WARNING: undefined reference to function: floor
KLEE: WARNING: undefined reference to function: fmod
KLEE: WARNING: undefined reference to function: forkpty
KLEE: WARNING: undefined reference to function: fstat64invalid argument to
evalConstant()
KLEE: WARNING: undefined reference to function: fstatat64
KLEE: WARNING: undefined reference to function: futimens
KLEE: WARNING: undefined reference to function: getitimer
KLEE: WARNING: undefined reference to function: getpgid
KLEE: WARNING: undefined reference to function: getresgid
KLEE: WARNING: undefined reference to function: getresuid
KLEE: WARNING: undefined reference to function: getsid
KLEE: WARNING: undefined reference to function: gettext
KLEE: WARNING: undefined reference to functIt occurs to be that klee is
stable built with llvm 2.9+. So my suggestion does not seem right. errorion:
hypot
KLEE: WARNING: undefined reference to function: linkat
KLEE: WARNING: undefined reference to function: log
KLEE: WARNING: undefined reference to function: lseek64
KLEE: WARNING: undefined reference to function: lstat64
KLEE: WARNING: undefined reference to function: lutimes
KLEE: WARNING: undefined reference to function: mkdirat
KLEE: WARNING: undefined reference to function: mkfifoat
KLEE: WARNING: undefined reference to function: mknodat
KLEE: WARNING: undefined reference to function: modfinvalid argument to
evalConstant()
KLEE: WARNING: undefined reference to function: nice
KLEE: WARNING: undefined reference to function: openat64
KLEE: WARNING: undefined reference to function: openpty
KLEE: WARNING: undefined reference to function: posix_fadvise64
KLEE: WARNING: undefined reference to function: posix_fallocate64
KLEE: WARNING: undefined reference to function: pow
KLEE: WARNING: undefined reference to function: pread64
KLEE: WARNING: undefined reference to function: pwrite64
KLEE: WARNING: undefined reference to function: readlinkat
KLEE: WARNING: undefined reference to function: readv
KLEE: WARNING: undefined reference to function: renameat
KLEE: WARNING: undefined reference to function: round
KLEE: WARNING: undefined reference to function: sendfile64
KLEE: WARNING: undefined reference to function: setegid
KLEE: WARNING: undefined reference to function: seteuid
KLEE: WARNING: undefined reference to function: setitimer
KLEE: WARNING: undefined reference to function: setregid
KLEE: WARNING: undefined reference to function: setreuid
KLEE: WARNING: undefined reference to function: sigaltstack
KLEE: WARNING: undefined reference to function: sin
KLEE: WARNING: undefined reference to function: stat64
KLEE: WARNING: undefined reference to function: symlinkat
KLEE: WARNING: undefined reference to function: textdomain
KLEE: WARNING: undefined reference to function: truncate64
KLEE: WARNING: undefined reference to function: utimensat
KLEE: WARNING: undefined reference to function: writev
LVM ERROR: invalid argument to evalConstant()
_______________________________________________
klee-dev mailing list
[email protected] <mailto:[email protected]>
https://mailman.ic.ac.uk/mailman/listinfo/klee-dev
<https://urldefense.proofpoint.com/v2/url?u=https-3A__mailman.ic.ac.uk_mailman_listinfo_klee-2Ddev&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=at_zHdaJ5pMt_A20sKa_JLbvjeXndNos3PveVfgUF0o&m=__k_0_NUqhoJNS020I7-WYkoCuzZ200ZJu6WhrzOreE&s=yv8d73I_tMdl8fQbguYhqcDHRKqIga_rZRTFfbYBu2s&e=>
_______________________________________________
klee-dev mailing list
[email protected] <mailto:[email protected]>
https://mailman.ic.ac.uk/mailman/listinfo/klee-dev
<https://urldefense.proofpoint.com/v2/url?u=https-3A__mailman.ic.ac.uk_mailman_listinfo_klee-2Ddev&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=at_zHdaJ5pMt_A20sKa_JLbvjeXndNos3PveVfgUF0o&m=__k_0_NUqhoJNS020I7-WYkoCuzZ200ZJu6WhrzOreE&s=yv8d73I_tMdl8fQbguYhqcDHRKqIga_rZRTFfbYBu2s&e=>
_______________________________________________
klee-dev mailing list
[email protected]
https://mailman.ic.ac.uk/mailman/listinfo/klee-dev
_______________________________________________
klee-dev mailing list
[email protected]
https://mailman.ic.ac.uk/mailman/listinfo/klee-dev
_______________________________________________
klee-dev mailing list
[email protected]
https://mailman.ic.ac.uk/mailman/listinfo/klee-dev