[klee-dev] .kteest & .kquery files
Frank Busse
f.busse at imperial.ac.uk
Tue Jul 6 17:20:34 BST 2021
Hi Pansilu,
On Thu, 1 Jul 2021 17:12:05 +0800
Pansilu Pitigalaarachchi <pansilu.pitigalaarachchi at gmail.com> wrote:
> a.Below test cases have 3 objects. Can you help clarify the
> significance & usage of the 2nd('stat') and 3rd('model_version')
> objects.
> b.What is the logic for the content of the 'stat' object &
> 'model_version' objects? Hard coded ?
> c.Is the stat object always 144 bytes and 'model version' 4 bytes ?
> d.Some of the generated test cases in different experiments did not
> contain 'stat' object, also some did not contain both 'stat' &
> 'model_version' objects.
You get "model_version" as soon as you use --posix-runtime (it's in the
startup code klee_init_fds) and "A-data/A-data-stat" when you use
symbolic files (144 bytes is the size of the stat struct on your system
- KLEE uses symbolic entries for some values, not always the best
choice).
example.c:
--
int main(void) {}
--
$ klee example.bc
- 0 objects in KTest file
$ klee --posix-runtime example.bc
- 1 object in KTest file (model_version)
$ klee --posix-runtime example.bc --sym-files 1 1
- 3 objects in KTest file (model_version and the symbolic file A with
its stat structure)
> Are these optional ? Can I omit these objects altogether If I'm
> generating custom .ktest files ?
Depends on your use case. For symbolic files keep them.
Kind regards,
Frank
More information about the klee-dev
mailing list