[klee-dev] Linking C++ runtime

Cristian Cadar c.cadar at imperial.ac.uk
Wed Sep 28 17:50:49 BST 2016


Hi, improved support for C++ is not on our current list of priorities, 
but we would be of course happy to accept any contributions.

Best,
Cristian

On 26/09/16 21:28, Reza Ahmadi wrote:
> How to get to know what exactly it supports and what not? Do you have
> any idea if C++ will be supported more in the future and when?
>
> On Mon, Sep 26, 2016 at 4:15 PM, Dan Liew <dan at su-root.co.uk
> <mailto:dan at su-root.co.uk>> wrote:
>
>     On 26 September 2016 at 20:56, Eric Laberge <e.laberge at gmail.com
>     <mailto:e.laberge at gmail.com>> wrote:
>     > Hello!
>     >
>     > I am trying to get KLEE running a simple C++ app through Docker, but am obviously not doing it correctly. Anybody got it working?
>     >
>     > Here’s what I got:
>     >
>     > klee at 77c9c1d55f4a:/tmp$ cat hello.cpp
>     > int main() {
>     >   return 0;
>     > }
>     >
>     > klee at 77c9c1d55f4a:/tmp$ clang++ -c hello.cpp -emit-llvm -g -o hello.bc
>     >
>     > klee at 77c9c1d55f4a:/tmp$ klee -link-llvm-lib=/usr/lib/gcc/x86_64-linux-gnu/4.8/libstdc++.so hello.bc
>     > KLEE: Linking in library: /usr/lib/gcc/x86_64-linux-gnu/4.8/libstdc++.so.
>     >
>     > klee: /usr/lib/llvm-3.4/build/include/llvm/Support/Casting.h:97: static bool
>     llvm::isa_impl_cl<llvm::object::ObjectFile, const
>     llvm::object::Binary *>::doit(const From *) [To =
>     llvm::object::ObjectFile, From = const llvm::object::Binary *]:
>     Assertion `Val && "isa<> used on a null pointer"' failed.
>     > 0  klee            0x0000000000dd4432 llvm::sys::PrintStackTrace(_IO_FILE*) + 34
>     > 1  klee            0x0000000000dd4224
>     > 2  libpthread.so.0 0x00002ac38e4ee330
>     > 3  libc.so.6       0x00002ac390babc37 gsignal + 55
>     > 4  libc.so.6       0x00002ac390baf028 abort + 328
>     > 5  libc.so.6       0x00002ac390ba4bf6
>     > 6  libc.so.6       0x00002ac390ba4ca2
>     > 7  klee            0x00000000005c8135 klee::linkWithLibrary(llvm::Module*, std::string const&) + 3925
>     > 8  klee            0x0000000000576c6c main + 5740
>     > 9  libc.so.6       0x00002ac390b96f45 __libc_start_main + 245
>     > 10 klee            0x00000000005718d9
>     > Aborted
>     >
>
>     KLEE does not properly support running C++ code. Some things might
>     work but a lot of things don't.
>
>     The option you are using is meant for use on archives of LLVM bit code
>     files, not native dynamic libraries. I protested about the inclusion
>     of this option in KLEE because I believe that the majority of the
>     linking should be done outside of KLEE but I was over-ruled.
>
>     _______________________________________________
>     klee-dev mailing list
>     klee-dev at imperial.ac.uk <mailto:klee-dev at imperial.ac.uk>
>     https://mailman.ic.ac.uk/mailman/listinfo/klee-dev
>     <https://mailman.ic.ac.uk/mailman/listinfo/klee-dev>
>
>
>
>
> --
> Best regards,
> Reza Ahmadi
> Ph.D. student at MASE lab
> 624 Goodwin Hall
> Queen's University, Kingston, ON
> +1 (613) 7708830 | ahmadi at cs.queensu.ca <mailto:ahmadi at cs.queensu.ca>
> https://sites.google.com/site/reahmdi/
>
>
> _______________________________________________
> klee-dev mailing list
> klee-dev at imperial.ac.uk
> https://mailman.ic.ac.uk/mailman/listinfo/klee-dev
>



More information about the klee-dev mailing list