Hello KLEE Developer Team,

I've recently been using KLEE for symbolic execution of a large program. To 
precisely control the entry point for symbolic execution, I've wrapped an API 
function, klee_entry, as my entry point. Inside klee_entry, I symbolize global 
variables and concretize their pointer members before calling the target 
function to begin symbolic execution.

However, during actual execution, I've noticed that klee_entry calls the 
klee.ctor_stub function. This function appears to invoke constructors for some 
global variables, seemingly for initialization. This seems redundant since I've 
already manually symbolized these global variables.

I have a couple of questions regarding this behavior:

What is the specific purpose of the klee.ctor_stub function? Is it related to 
the initialization of vtables (i.e., indirect calls)?

Within the klee_entry function, is klee.ctor_stub called before or after 
klee_make_symbolic is used to symbolize variables? In other words, is the 
execution of klee.ctor_stub also subject to KLEE's symbolic execution?

On a related note, how does KLEE generally handle indirect calls (e.g., through 
function pointers or virtual functions) during symbolic execution?

Thank you for your assistance!

Sincerely,

lqs66
_______________________________________________
klee-dev mailing list
[email protected]
https://mailman.ic.ac.uk/mailman/listinfo/klee-dev

Reply via email to