Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Symbiotic missing an error #248

Open
andrea1775 opened this issue Sep 22, 2023 · 2 comments
Open

Symbiotic missing an error #248

andrea1775 opened this issue Sep 22, 2023 · 2 comments

Comments

@andrea1775
Copy link

Dear all,

I found that symbiotic misses the second assertion violation for the following C-Program: test.zip.
One can verify that the second assertion is indeed violated for concrete input C=-1.
I am working with symbiotic version 9.0.0.

Best regards,
Andrea

@mchalupa
Copy link
Member

Hi,

how do you run Symbiotic? For me, it finds both the assertions:

scripts/symbiotic ~/Downloads/test.c
8.0.0-llvm-unknown-symbiotic:8.0.0
INFO: Looking for reachability of calls to __assert_fail,__VERIFIER_error
INFO: Optimizations time: 0.013025760650634766
INFO: Starting slicing
INFO: Total slicing time: 0.00792384147644043
Linked our definitions to these undefined functions:
  __VERIFIER_assume
INFO: Optimizations time: 0.012096643447875977
INFO: After-slicing optimizations and transformations time: 1.7642974853515625e-05
INFO: Starting verification
KLEE: WARNING: undefined reference to function: klee_make_nondet
KLEE: WARNING ONCE: Large alloc: 4000000000 bytes. Not allocating this memory in real.
KLEE: ERROR: /home/marek/Downloads/test.c:9: ASSERTION FAIL: C != n
KLEE: NOTE: now ignoring this error at this location

KLEE: ERROR: /home/marek/Downloads/test.c:19: ASSERTION FAIL: C >= n
KLEE: NOTE: now ignoring this error at this location

 --- Error trace ---

Error: ASSERTION FAIL: C >= n
File: /home/marek/Downloads/test.c
Line: 19
assembly.ll line: 124
Stack: 
	#000000124 in main () at /home/marek/Downloads/test.c:19

 --- Sequence of non-deterministic values [function:file:line:col] ---

__VERIFIER_nondet_int:test.c:8:11 := len 4 bytes, [3 times 0x0|0x80] (i32: -2147483648)

 --- ----------- ---

 --- Error trace ---

Error: ASSERTION FAIL: C != n
File: /home/marek/Downloads/test.c
Line: 9
assembly.ll line: 63
Stack: 
	#000000063 in main () at /home/marek/Downloads/test.c:9

 --- Sequence of non-deterministic values [function:file:line:col] ---

__VERIFIER_nondet_int:test.c:8:11 := len 4 bytes, [0xe8|0x3|2 times 0x0] (i32: 1000)

 --- ----------- ---
Error found.
NOTE: In the future, the result is going to be reported in SV-COMP format only with --report=sv-comp switch
RESULT: false(unreach-call)
INFO: Total time elapsed: 19.713260650634766

@andrea1775
Copy link
Author

Ok that's interesting because I also invoke symbiotic without any options:
symbiotic/bin/symbiotic Downloads/test.c
symbiotic/bin/symbiotic Downloads/test.c
9.0.0-dev-llvm-10.0.1-symbiotic:b34dd3a1-dg:4b374e5d-sbt-slicer:9636fad0-sbt-instrumentation:f07632fd-z3:d6df5195-klee:b71309b4
INFO: Looking for reachability of calls to __assert_fail,__VERIFIER_error
INFO: Optimizations time: 0.010481834411621094
INFO: Starting slicing
INFO: Total slicing time: 0.005069732666015625
Linked our definitions to these undefined functions:
__VERIFIER_assume
INFO: Optimizations time: 0.008301734924316406
INFO: After-slicing optimizations and transformations time: 1.2636184692382812e-05
INFO: Starting verification
KLEE: WARNING ONCE: Large alloc: 4000000000 bytes. Not allocating this memory in real.
KLEE: ERROR: Downloads/test.c:9: ASSERTION FAIL: C != n
KLEE: NOTE: now ignoring this error at this location

--- Error trace ---

Error: ASSERTION FAIL: C != n
File: Downloads/test.c
Line: 9
assembly.ll line: 44
Stack:
#44 in main () at Downloads/test.c:9

--- Sequence of non-deterministic values [function:file:line:col] ---

__VERIFIER_nondet_int:test.c:8:11 := len 4 bytes, [0xe8|0x3|2 times 0x0] (i32: 1000)


Error found.
NOTE: In the future, the result is going to be reported in SV-COMP format only with --report=sv-comp switch
RESULT: false(unreach-call)
INFO: Total time elapsed: 10.196244716644287

However in the outputs I see that I use newer versions of Symbiotic/LLVM, so maybe that's the reason?
"symbiotic/bin/symbiotic --version" prints
version: 9.0.0-dev
LLVM version: 10.0.1
symbiotic -> b34dd3a (Release)
dg -> 4b374e5dba6e9a1d76191cd76ae8bad42a977171 (Release)
sbt-slicer -> 9636fad069d4fdcb03150e287a14887f7b02b2ad (Release)
sbt-instrumentation -> f07632fdc5ed9c204525c0547ebc6e819746a643 (Release)
z3 -> d6df51951f4cdc95f0dfd3b1297d04a465d8f2ca (Release)
klee -> b71309b475b494cbab3b5580e31bed941dd02687 (Release)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants