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

Run Tests

Use control + ~ to open a terminal in VSCode and then type the below command line

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

Upload

Submit both Assignment_3.cpp and Assignment_3.h (the only two files accepted — any other file under Assignment-3/ is ignored, so put every declaration and helper inside these two). File names are exact and case-sensitive.

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

give cs6131 ass3 Assignment_3.cpp Assignment_3.h

A successful submission reports Your submission is ACCEPTED.. If you submit the .cpp without its .h (or use wrong names), give rejects it with all accept groups fail — fix and resubmit. 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.h and Assignment_3.cpp only — do NOT modify any other file under the Assignment-3 folder (the harness AEHelper.cpp / AEReporter.* and the test driver are not part of your submission and are replaced during marking).

SVF AE C++ API to help with your implementation.

3. Configuration && debugging

3.1 Configuration

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

width=800px

3.2 Debugging

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

int main() {
    AbstractValue a = IntervalValue(1, 1);
    std::cout << a.toString() << std::end;
}

More information about C++