Open yswntht opened 1 year ago
Hello, if I understand correctly what you want you can already find this information in the dft.raw
file that gets produced (and then removed but you can comment it out). dft.log
is obtained by sorting and removing the duplicates from dft.raw
. See:
There you will find the list of all the tainted/non-tainted instructions dynamically executed
Hi @pietroborrello ,
Thank you for making the project open source. I'm able to setup Constantine and try the examples that are provided along. For my purpose, I'm trying to get the frequency of tainted instruction. I see that dft.log has list of all tainted instructions. To compute number of times each tainted instruction appear dynamically in a application run (chronos/aes.c), I tried to run aes.dft.out in gem5 (x86 SE mode) and dump execution trace. Later, I want to count the occurrence of each tainted institutions from the execution trace of gem5. However, aes.dft.out failed to complete in gem5 even after 5 hours. native execution works fine,
./aes.dft.out < aes_samples.txt
. gem5 is also fine. aes.o completes normal in gem5, complied with gcc)few web searches suggests that aes.dft.out might be dynamically linking glibc which is causing issue with gem5 runs. to fix this I tried to run
./constantine -O1 /root/constantine/src/apps/issta2018-benchmarks-wu/examples/chronos/aes.c -o main.o
adding-static
flag at linking stage as follows, so that it could fix dynamic linking libraries issue in gem5.cc_exec(f'{LDFLAGS} -fno-exceptions -static -fsanitize=dataflow -o {name}.dft.out -ldl {name}.final.o {dir_path}/lib/dft/dft.o')
.But now I see a different issue while running constantine.
any suggestions on how to fix this? or Any work around that you could think of to compute the occurrences of each tainted instruction in application is helpful.
Thanks.