Assignment 3 Python - SVF-tools/Software-Security-Analysis GitHub Wiki

Run Tests

Use Alt + F12 to open a terminal in VSCode and then type the below command line

Your implementation ctest command line
The sample programs ctest -R ass3-py
The entire Assignment-3 ctest -R ass3.*py

Upload

Submit Assignment_3.py — the only file accepted (any other file under Assignment-3/ is ignored, so put every class and helper method inside it). The file name is exact and case-sensitive.

Submit with give on a CSE machine, from the directory containing the file:

give cs6131 ass3 Assignment_3.py

A successful submission reports Your submission is ACCEPTED.. You may resubmit any number of times before the deadline; only your latest accepted submission is marked. See Uploading submissions using give for details.

Your implementation will be evaluated against a set of internal tests; your mark is the fraction of them that your implementation passes. Only a few small sample programs ship under Assignment-3/Tests so you can sanity-check your build; you are encouraged to write more test cases of your own to validate your implementation.

*You work in Assignment_3.py only — do NOT modify any other file under the Assignment-3 folder (the harness AEHelper.py / AEReporter.py and the test driver are not part of your submission and are replaced during marking).

SVF AE Python API to help with your implementation.

When implementing handleICFGCycle, remember that self.post_abs_trace[node] returns a reference to the C++ AbstractState. Use .clone() when saving a previous iteration state before mutating the trace.

3. Configuration && debugging

3.1 launch.json

To enable debugging and running, switch your executable by setting the program and args fields as described here or follow the below screenshot.

width=800px

3.2 Debugging

If you want to see the value of AbstractValue, you can call to_string() to print the value (either IntervalValue or AddressValue).

a = IntervalValue(1,1)
print(a.toString())

More information about Python