-
Notifications
You must be signed in to change notification settings - Fork 75
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
Add arg/dot
, arg/state
, arg/eval
and arg/eval-int
requests to server mode
#1008
Conversation
arg/dot
and arg/state
requests to server modearg/dot
, arg/state
and arg/eval
requests to server mode
arg/dot
, arg/state
and arg/eval
requests to server modearg/dot
, arg/state
and arg/eval-int
requests to server mode
aaa9cad did not resolve the issue with evaluating global variables after reanalysis. Now all global variables evaluate to |
Do you have a specific test case where that happens? |
// repro.c
int global = 32;
int main() {
int local = 3;
} // goblint.json
{
"files": ["repro.c"]
} After reanalysis Note: running analysis with |
arg/dot
, arg/state
and arg/eval-int
requests to server modearg/dot
, arg/state
, arg/eval
and arg/eval-int
requests to server mode
Changes
function
fields tocfg/lookup
andarg/lookup
responses.arg/dot
request, which returns the Graphviz string representation of the ARG.arg/state
request, which returns the JSON representation of an ARG node local state.arg/eval
request, which returns the JSON representation of a C expression evaluated at an ARG node.The latter two are achieved by introducing a
PathQuery
query. ThePathQuery
generalizes the ability ofInvariant
query to only query a single path from the witness lifter. TheDYojson
query just returnsD.to_yojson
but via the query system. It is slightly hacky but allows accessing the local state representation of a particular path without bigger changes to all theSpec
lifters.TODO
arg/eval
→arg/eval-int
.