-
Notifications
You must be signed in to change notification settings - Fork 139
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
Some functions will get stuck when running to fixpoint.run(AnalysisEnvironment::initial());
#116
Comments
Hi @houugen, In theory, Mariana Trench should always converge during its analysis. If it does not terminate, there is a bug in the analysis. |
Sorry, i can't provide apk because of some privacy The problematic function is public BasePlayerImpl(Context context, PlayerConfig playerConfig) {
this.x = context;
this.y = playerConfig;
this.f.aq = this.y;
Profile.initProfile("xx", playerConfig.f6908a, context);
this.f.K = this;
this.f.I = this;
this.f.J = this;
this.f.a((MediaPlayer.OnErrorListener) this);
this.f.M = this;
this.f.L = this;
this.f.N = this;
this.f.ab = this;
this.f.Q = this;
this.f.R = this;
this.f.S = this;
this.f.T = this;
this.f.W = this;
this.f.U = this;
this.f.ad = this;
this.f.Z = this;
this.f.aa = new OnLoadingStatusListenerNoTrack() {
@Override
public final void onStartLoading() {
BasePlayerImpl.this.w();
}
@Override
public final void onEndLoading() {
BasePlayerImpl.this.x();
}
};
this.f.O = this;
this.f.ai = this;
this.f.X = this;
this.f.Y = new OnNetworkSpeedPerMinute() {
@Override
public final void onSpeedUpdate(int i) {
for (PlayStatisticListener playStatisticListener : BasePlayerImpl.this.h) {
playStatisticListener.onInfo(2300, i, 0, null, 0L);
}
}
@Override
public final void onNetWorkIncome(int i) {
for (PlayStatisticListener playStatisticListener : BasePlayerImpl.this.h) {
playStatisticListener.onInfo(60001, i, 0, null, 0L);
}
}
@Override
public final void onNetWorkSpeed(Object obj) {
for (PlayStatisticListener playStatisticListener : BasePlayerImpl.this.h) {
playStatisticListener.onInfo(60002, 0, 0, obj, 0L);
}
}
};
this.f.a((BaseMediaPlayer.OnPlayHeartListener) this);
this.f.ae = this;
this.f.ag = this;
this.f.ah = this;
this.f.ak = this;
this.f.aj = this;
this.f.ac = this;
this.f.al = this;
this.f.ag = this;
this.f.V = this;
this.f.P = this;
this.f.af = this;
this.f.am = this;
this.f.an = this;
this.f.ao = this;
this.f.H = this;
this.f.A = new DefaultDataSourceProcessor();
BaseMediaPlayer baseMediaPlayer = this.f;
int i = playerConfig.e;
if (i == 1) {
baseMediaPlayer.t = true;
} else if (i == 3) {
baseMediaPlayer.B = true;
} else if (i == 2) {
baseMediaPlayer.t = true;
baseMediaPlayer.B = true;
}
} |
Bug
In the process of analyzing an app, it is found that only the first round of method analysis is performed, and the next round cannot be entered. Through the observation of the log and debug, it is a function processing thread that is stuck
Interprocedural.cpp
-->
auto new_model = analyze(context, registry, old_model);
-->
fixpoint.run(AnalysisEnvironment::initial());
(key point)Solution:
Hope to increase thread timeout at
context.scheduler->schedule
The text was updated successfully, but these errors were encountered: