Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tutorial or any guide on how to use IC3 and its working #26

Open
fahad-ibrar opened this issue Jun 15, 2017 · 1 comment
Open

Tutorial or any guide on how to use IC3 and its working #26

fahad-ibrar opened this issue Jun 15, 2017 · 1 comment

Comments

@fahad-ibrar
Copy link

fahad-ibrar commented Jun 15, 2017

Hi,
I want to use IC3 for ICC in Android. I have gone through the Epicc research paper and successfully setup IC3 on my machine. After running IC3 on an app I looked at the results and data stored in the database but I was not able to figure out that how to interpret these results. Can you please tell me if there is available any tutorial or guide on how to use IC3 and interpret its result? It would be very helpful for me to understand IC3 more efficiently

Regards,
Fahad Ibrar

@docteau
Copy link
Member

docteau commented Jul 6, 2017

The site hosting the IC3 documentation is temporarily down. I'll look into putting some of the relevant content here. In the meantime for your question about interpreting the results, in order to make it easier I would advise you to first output to a protocol buffer, which would give you a more easily understandable view of the app as you experiment.

The relevant part of the site that tells you how to use protocol buffers is given below:

It is also possible to have IC3 output the results of its analysis to protocol buffers. This allows you to examine results in an easier way than through the database. More importantly, you can easily load IC3 results using code written in Java, Python or C++. In order to output to a protocol buffer, the -protobuf option followed by the path to an output directory can be used. In order to output to a binary protocol buffer (which is slightly faster and takes less space), use the -binary option. The -protobuf option is not compatible with the -db option.

Finally, it is possible to have IC3 compute which components a message-sending program location belongs. This is done by specifying the -computecomponents flag on the command line.

Please let me know if you have questions about this output. The database output is similar in its content (but harder to interpret for a given application).

Regards,
Damien

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants