Posts

BATCH 4 | Project Stage 3, Part 3 - Challenges and Reflection

 Project Stage 3, Part 3 Challenges and Reflection Hi, if you have been following along, this is a continuation of my Project Stage 3 blog series. In this post, I’ll walk you through the challenges I encountered and how I resolved them. Below, you’ll find links to related blog posts: 1. Project Stage 3, Part 1 - Tidy & Wrap 2. Project Stage 3, Part 2 - Test Cases & Results Challenges and Resolutions: Challenge # 1: Code Only Works On One Cloned Function My original code assumed that there was only one cloned function which was the scale_samples function. Even though it worked as intended, stage 3 of the project requires analysis to work on multiple clones. This challenge took some time to figure out and eventually decided to change the approach by switching to storing all signatures in a vector per base name. The process includes identifying non-resolver clones and pushing it into the vector so that once this vector has a size of at least 2, a comparison between each entry...

BATCH 4 | Project Stage 3, Part 1 - Tidy & Wrap

 Project Stage 3, Part 1 - Tidy & Wrap Extending Project Stage 2 Code Functionality Instructions In this project, we will make use of the existing Clone-Prune Analysis Pass created for Project Stage 2. Down below are the requirements expected for us to complete in this stage. Instructions were taken from Chris Tyler's Wiki: 1. Extend the functionality of your code so that it can process multiple sets of cloned functions and make a PRUNE / NOPRUNE recommendation for each (your code may already do this). In other words, remove the assumption from Stage II that “There is only one cloned function in a program”. 2. Create one or more test cases that contain a minimum of two cloned functions per program. You can do this by extending the test cases that I provided for Stage II; or you can create your own test cases. 3. Verify that your code works correctly on both architectures (x86_64 and aarch64), with multiple functions, in both the PRUNE and NOPRUNE scenarios. 4. Ensure that you t...