Unable to debug Android App (Windows + Qt Creator 12 + LLDB)
-
@Axel-Spoerl Just tested a simple group box example.
QtCreator 12.0.2
Ubuntu 22.04
Qt 6.6.2
JDK-17
NDK 21 or 25
Device: Samsung tablet A-8 with Android 13Problem 1: break into disassembler binary with JDK 17. The test case runs fine without breakpoints.
Problem 2: JDK 11 is not supported anymore. If JDK 11 and Qt 5.15.2 are applied, NDK can not be set-up. For Android 13, JDK 11 is the right selection. -
@JoeCFD
Does that mean, things break with JDK 17? -
@Axel-Spoerl Nope. No break stop in the code, instead in disassembler.
-
-
At https://github.com/qt-creator/qt-creator/actions/runs/8161009528 I have artifacts for a fix for the Android debugger issue.
It's one line of code that brings Qt Creator 13 to the level of Qt Creator 10.
In my case of MacBook Pro M1 I am getting breakpoints hits and no longer "Waiting for debugger".
-
@cristian-adam Good news. We have to use 13? No fix in 12?
-
@JoeCFD At https://wiki.qt.io/Qt_Creator_Releases there is no 12.0.3 release planed.
But, you can backport the change, is just one liner. Just clone Qt Creator on GitHub, cherry-pick the change and push a release tag to your fork. You will get releases automatically.
-
https://download.qt.io/snapshots/qtcreator/13.0/13.0.0-rc1/78/ has the needed fixes for the working Android debugging.
-
@cristian-adam just downloaded it and had a try. The problem is still there.
Ubuntu 22.04
Qt 6.6.2
JDK-17
NDK 21 or 25 -
@JoeCFD I just gave it a try on my MacBook Pro M1 with:
- Qt 6.6.1
- Android arm64-v8 emulator image
- Android SDK 33
- Android NDK 25
- OpenJDK-17
See the recording at qtcreator13-android33.mp4.
-
@JoeCFD
Note the following:- if you have legacy break points, remove them all.
- if you want to set a break point into
main()
, add aQThread::sleep(1)
on top. It has to be the first instruction in main. - if you set no break points at all, the debugger will still jump to the disassembler. It looks as if the bug was still present. If you hit "continue" many times (18 in my case), the debuggee will start normally.
-
I have tested the "dice" Qt example and I was able to land into "disassembly" only the first time that the application was installed on the device.
If I click continue it will skip all the SIGSEGVS and would hit my breakpoints.
See the recording: qtcreator13-disassembly.
The Java exceptions are implemented with signals and it looks like the
lldb-server
is picking up and giving them further down the chain.Android Studio users also have this problem see Android Studio keeps pausing with SIGSEGV (signal SIGSEGV: invalid address (fault address: 0x0)) at random [240007217] - Issue Tracker (google.com)
I have tried telling the debugger to ignore the signal:
process handle SIGSEGV --pass true --stop false --notify true
but it didn't work.
This doesn't look like a Qt Creator bug.
-
As a workaround one can paste (plus Enter):
pro hand -p true -s false SIGSEGV
In the debugger console at the first assembly hit, and then all the rest are ignored!
-
@esnosy said in Unable to debug Android App (Windows + Qt Creator 12 + LLDB):
EDIT: I take it back
Does that mean, you are still struggling?