prosyslab / DAFL-artifact

35 stars 3 forks source link

Does DAFL Support Multiple Target Usage? #4

Closed iskindar closed 8 months ago

iskindar commented 8 months ago

Thank you for open-sourcing this wonderful project. I've encountered an issue when trying to use Sparrow with the DAFL framework.

Command Used:

python3 /benchmark/scripts/run_sparrow.py gif2tga thin

Error Encountered: Upon execution, I receive the following fatal error:

Fatal error: exception Failure("Error: target not found")

Description of the Issue: The error seems to be related to the target provided to Sparrow. When I supply a single line as the target, Sparrow functions correctly without any issues. However, when I attempt to use two lines as targets, as shown below, I encounter the aforementioned error.

ngiflib.c:610
ngiflib.c:328

Question: Does DAFL support scenarios involving multiple target usages? I'm aware this might be beyond the typical scope of DAFL, but any guidance or workaround would be greatly appreciated.

Thank you for your assistance.

goodtaeeun commented 8 months ago

Hi, thank you for your interest in our project.

You are right that currently DAFL does not support multiple targets. For the workaround, I recommend you to check the discussion section of our paper. In short, you may run Sparrow separately on each of the targets, and then aggregate the results into a single input file. One possible way of aggregation is taking the union of the instrumentation targets and taking the average of the scores of the def-use graph. However, we do not know the impact of the methods of aggregation since we lack experimental data.

The good news is that we are currently working on extending DAFL to support multiple targets. We will do our best to get you updated as soon as possible.