PLSysSec / sys

Sys: A Static/Symbolic Tool for Finding Good Bugs in Good (Browser) Code
https://cseweb.ucsd.edu/~dstefan/pubs/brown:2020:sys.pdf
GNU General Public License v2.0
215 stars 41 forks source link

Unify checker outputs #5

Open deian opened 3 years ago

kyledutyy commented 3 years ago

What does "unification" mean here? I could see different "printHandler", are you willing to print the result altogether instead of separate outputs?

deian commented 3 years ago

Good question! Right now different checkers print out things differently. Some of the output is checker specific but most of it is not. At the very least it would be nice to consistently print out:

<threadid>:<checker-name>:<function>: Path is feasible: <path>
<threadid>:<checker-name>:<function>: Attack is not possible

or

<threadid>:<checker-name>:<function>: Path is feasible: <path>
<threadid>:<checker-name>:<function>: Attack is possible with values: <model>

The logging utilities have the threadid bit already, but the checker printers don't use the logging utils.

You can imagine even coloring the attacks is possible ones since that's the code we really care about.

kyledutyy commented 3 years ago

This sounds fine, I also have a question about debugging, I have some previous experience with GDB, but couldn't use that experience in here, can you help me more with debugging?

marcinguy commented 3 years ago

@kyledutyy what do you want to debug? Not sure you will need much gdb here... U will need more possibly lovely haskell and functional programming.

Feel free to also ping me on gdb help

kyledutyy commented 3 years ago

Feel free to also ping me on gdb help

I want to look for the error site and look how things work while getting outputs like, I wanna know the mid steps between every time we run something to sys.

For example this command "stack exec sys -- -c uninit -e prod -d ./test/Bugs/Uninit/Firefox/serial.ll-O2_p" I want to know more about the "programs triggered" in between "outputting of the result".

So I want to use GDB for this, can you help me how I can do that with GDB.