SVF-tools / SVF

Static Value-Flow Analysis Framework for Source Code
http://svf-tools.github.io/SVF/
Other
1.35k stars 427 forks source link

An error occurred while testing abstract execution #1488

Open ZcoderL opened 2 weeks ago

ZcoderL commented 2 weeks ago

An error occurred while testing darknet: image

ae: /SVF/svf/include/AE/Core/IntervalValue.h:208: const SVF::BoundedInt& SVF::IntervalValue::lb() const: Assertion `!this->isBottom() && "bottom interval does not have lower bound"' failed.

Debugging found that the value field was not evaluated in SVFIR2AbsState:: getSINtToFPValue and SVFIR2AbsState:: getSINtToFPValue. After modifying the code, the error disappeared: image bc file: darknet.zip

yuleisui commented 2 weeks ago

@bjjwwang could take a look at this case?

bjjwwang commented 2 weeks ago

Thanks for the issue. this is because the new value will be assigned as bottom value in current version. I will make sure to avoid this situation and submit a PR in the next two days

ZcoderL commented 2 weeks ago

@bjjwwang I have read the ae code in the current SVF version and found that it does not seem to be sparse. Is my understanding correct?

ZcoderL commented 2 weeks ago

It seems to propagate and update all abstract states along ICFG without using SVFG

yuleisui commented 1 week ago

The current AE is a standard baseline on top of ICFG. We will release more optimisations in due course.