We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
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
For the following target program:
public final class V { static Vector v; public static void main(String[] args) { Vector x = new Vector(); v = x; foo(); v.firstElement(); } public static void foo() { } }
I create an alias query at v.firstElement():
v.firstElement()
BackwardQuery:
($stack3 (target.typestate.microbenchmark.vector.V.<target.typestate.microbenchmark.vector.V: void main(java.lang.String[])>), $stack3.firstElement() -> return)
After query solving I get:
getAllocationSites: {} getAllAliases: []
But if I remove the empty method call, it works as expected:
public final class V { static Vector v; public static void main(String[] args) { Vector x = new Vector(); v = x; //foo(); v.firstElement(); } public static void foo() { } }
The Same BackwardQuery:
getAllocationSites: {ForwardQuery: ($stack2 (target.typestate.microbenchmark.vector.V.<target.typestate.microbenchmark.vector.V: void main(java.lang.String[])>), $stack2 = new Vector -> $stack2.<init>())=boomerang.results.AbstractBoomerangResults$Context@e307c342} getAllAliases: [$stack3 (target.typestate.microbenchmark.vector.V.<target.typestate.microbenchmark.vector.V: void main(java.lang.String[])>), $stack2 (target.typestate.microbenchmark.vector.V.<target.typestate.microbenchmark.vector.V: void main(java.lang.String[])>), x (target.typestate.microbenchmark.vector.V.<target.typestate.microbenchmark.vector.V: void main(java.lang.String[])>), StaticField: v<target.typestate.microbenchmark.vector.V: void main(java.lang.String[])>]
I am not sure if my configuration is wrong. I use the following bomerang options:
static class BoomerangOptions extends DefaultBoomerangOptions{ @Override public boolean onTheFlyCallGraph() { return false; } public StaticFieldStrategy getStaticFieldStrategy() { return StaticFieldStrategy.FLOW_SENSITIVE; }; @Override public boolean allowMultipleQueries() { return true; } @Override public boolean throwFlows() { return true; } @Override public boolean trackAnySubclassOfThrowable() { return true; } }
The text was updated successfully, but these errors were encountered:
No branches or pull requests
For the following target program:
I create an alias query at
v.firstElement()
:BackwardQuery:
After query solving I get:
But if I remove the empty method call, it works as expected:
I create an alias query at
v.firstElement()
:The Same BackwardQuery:
After query solving I get:
I am not sure if my configuration is wrong. I use the following bomerang options:
The text was updated successfully, but these errors were encountered: