Running A Profiled App on X86_64 Android Emulator Qt6.9.1
-
I am trying to investigate a Qt6 performance issue with an application I am working on running on an X86_64 Android emulator .
see [https://forum.qt.io/topic/162592/android-x86_64-app-crashes-before-reaching-qt-main].
I have turned on the clang++ profiling support ( -fprofile-instr-generate and -fcoverage-mapping ) when I compile my app, but I cannot find where the output is going in the emulator.
I am not even sure if this is the correct method.
Also I don't think my application is exiting properly which may mean the profiling information is not being written out even though I am calling "exit()" at the end of my main.cxx.
Under the debugger the code usually ends of in what looks like a java abort routine and the display seems to show some sort of shell remaining:screenshot from Samsung Tab9 runnning the same app compiled for arm64-v8a.
Any help would be good thanks.
-
I am trying to investigate a Qt6 performance issue with an application I am working on running on an X86_64 Android emulator .
see [https://forum.qt.io/topic/162592/android-x86_64-app-crashes-before-reaching-qt-main].
I have turned on the clang++ profiling support ( -fprofile-instr-generate and -fcoverage-mapping ) when I compile my app, but I cannot find where the output is going in the emulator.
I am not even sure if this is the correct method.
Also I don't think my application is exiting properly which may mean the profiling information is not being written out even though I am calling "exit()" at the end of my main.cxx.
Under the debugger the code usually ends of in what looks like a java abort routine and the display seems to show some sort of shell remaining:screenshot from Samsung Tab9 runnning the same app compiled for arm64-v8a.
Any help would be good thanks.
I have found that if I tap the "shell" my application restarts so even though I have called exit my app seems to have not really shutdown (a requirement for profiling).
Can anyone explain this behaviour please.my current code to exit my app is:
...
app->setQuitOnLastWindowClosed(true);
ret=app->exec();
}
db_conn.close();
}
delete app;
exit(ret);
} -
I have found that if I tap the "shell" my application restarts so even though I have called exit my app seems to have not really shutdown (a requirement for profiling).
Can anyone explain this behaviour please.my current code to exit my app is:
...
app->setQuitOnLastWindowClosed(true);
ret=app->exec();
}
db_conn.close();
}
delete app;
exit(ret);
}@SMF-Qt said in Running A Profiled App on X86_64 Android Emulator Qt6.9.1:
I have found that if I tap the "shell"
What shell do you mean?
On Android you need to stop an application explicitly.
On a phone you tap on the bottom right button and swipe up the app you want to close. -
@SMF-Qt said in Running A Profiled App on X86_64 Android Emulator Qt6.9.1:
I have found that if I tap the "shell"
What shell do you mean?
On Android you need to stop an application explicitly.
On a phone you tap on the bottom right button and swipe up the app you want to close. -
Hi,
Are you sure you are closing your application and not just putting it in the background ? Just leaving it to return to the shell (the name is confusing as most people associate shell with a terminal running bash, zsh, etc.) does not equal stopping it.
Alsoreturn ret;
would be the expect way to end your application.
-
@SMF-Qt
But your code shows you usingexit(ret);
. @SGaist is suggesting you try replacing it withreturn ret;
(assuming what you showed is in yourmain()
) in case that makes any difference. Have you tried that?You might put some
qDebug()
or whatever is appropriate immediately above that just to make sure whether your app really is exiting theexec()
loop. -
@SMF-Qt
But your code shows you usingexit(ret);
. @SGaist is suggesting you try replacing it withreturn ret;
(assuming what you showed is in yourmain()
) in case that makes any difference. Have you tried that?You might put some
qDebug()
or whatever is appropriate immediately above that just to make sure whether your app really is exiting theexec()
loop. -
As I wrote before, just returning to the shell does not mean your application is closed.
You have to explicitly close it. -
As I wrote before, just returning to the shell does not mean your application is closed.
You have to explicitly close it.