Unable to debug Android App (Windows + Qt Creator 12 + LLDB)
-
Something I haven't seen for like 4 years
-
@CodesInChaoss
Ah, I did not know about that licence's terms.I'm not sure whether in "QT's internal segmentation faults" you mean Qt itself or Qt Creator. I would be worried about either, certainly if Qt code itself in your application is faulting, but I don't know what "workarounds" you need/have to live with for your situation.
Be aware that even without paid support you can raise bugs, against either Qt or Creator, at https://bugreports.qt.io/. People there look at them and respond/fix, regardless of OP's license state. I think Creator is regularly undergoing new releases, I don't know how robust it is for Android stuff.
-
yes yes yes dear friend I know... I've been raising bugs from a different account for years ... we've all been developing QT since then kicked us in the ass years ago and run away with source code.
I know I can.
Then I get to wait 1-2 years till fix-ups make their way into commercial license and another 2 years into open source.
I know.
-
As of now
- we are manually overriding QT's Segmentation Fault events
- overriding Sig33 signals (bionic hardware)
Under the above conditions we are able to debug through QT Creator 12 and GDB with Qt 5.15.16 BUT
- removal of any breakpoint causes the GDB connection to become corrupted.
- no further debugging would be possible
Anyway, we CAN live with that (hopefully).
The most pressing issue is - how to force the mobile app to actually wait for QT Creator to fully attach?
I don't know the details but it seems that QT Creator 12 attached through GDB, the app knows.. BUT... NO BREAKPOINTS WOULD FIRE FOR 2-3 minutes at all (creator would keep showing that it's still attaching during that time period).
-
We may add a Sleep for 5 minutes.. in the initial main() loop
but come on folks.. that is not the way we are supposed to work... is it
-
I System.out: Debugger has connected I System.out: waiting for debugger to settle... I System.out: waiting for debugger to settle... I System.out: debugger detached?
that's also present when debugging with GDB.
-
Use the "info sharedlibrary" command to see the complete listing. Do you need "set solib-search-path" or "set sysroot"?The index cache directory name is empty, skipping store. The index cache directory name is empty, skipping store. The index cache directory name is empty, skipping store. Unable to find dynamic linker breakpoint function. GDB will be unable to debug shared library initializers and track explicitly loaded dynamic code.
-
AFTER disabling
- wait for debugger in Android Developer Settings (on mobile)
AND - after REMOVING the debugged application from the list of debugged applications ON ANDROID DEVICE
we are able to get have breakpoints working WAY SOONER (!!!)
now that i strange on the grounds of its own, is it not.....but STILL unable to have breakpoints at main() stage working at all.
Yet again we are talking about QT Creator 12 + GDB + Qt 5.15.16 (LTS)
so the pressing issues are
- get to know how to break as soon as in main() - normal thing to be expected
- what the heck are sig-faults in Qt related code?
- wait for debugger in Android Developer Settings (on mobile)
-
so seems like nobody (as usually) can assist around here even in questions regarding basic debugging.... this community is such a shame...
-
@CodesInChaoss Maybe try to do it on Linux and it could be easier. The executable is same.
-
@CodesInChaoss said in Unable to debug Android App (Windows + Qt Creator 12 + LLDB):
so seems like nobody (as usually) can assist around here even in questions regarding basic debugging.... this community is such a shame
A lot of lazy devs here ;-)
I'm especially interested in Qt because of its cross-platform ability. I do 90% of my android development in a native compile, with a window on my desktop. Have had maybe once or twice the wish to have a debugger for my remote Android device, but never found it important enough to install the tools for that. Qt Android tools are too freaking huge.
So, I'm lazy and debug on the native app on my desktop. Then do testing on the device, which rarely gives me issues I could not see on the desktop.
Not saying that what you want is wrong or anything like that. If QtCreator tells you that breakpoints should work, then they should work. And a paying customer should be able to demand attention from the Qt company.
I'm not a paying customer, no support for me.
Plenty of problems with the new Qt company of the last years, gerrit sucks. Jira even more so. As an open source programmer I have zero incentive to report bugs for the LTS releases since I'd wait at minimum a full year for a bugfix. And the quality is just really quite sad for Android. But it still is better than most alternatives I've tried. So here we are :-) -
the funniest thing of all is we've got an immense code base already so if we do not solve the issues above (LLDB - unable to debug at all) and GDB crashing all the time with all the other crazy shit going on - we would be FORCED to pay the above in HOPES they manage to give us some helpful hand.
Go figure.
-
we're just too afraid they gonna say hey see - IT WORKS WITH A
HELLO WORLD
-
it all feels like there are some race condition issues or whatever...
it some times (on 3% of occasions) works PERFECTLY.
AFTER WE"VE INTRODUCE CUSTOM OVERRIDED TO SIG_FAULTS THROWN UPON US from QT.
as of now , as it is on current setup.
while on 97% of occasions it's UNUSABLE.
And that's a thing to worry about.
Creator dying every now and then... same for GDB... LLDB unusable.. breakpoints working on some occasions.. skipped other times...debugger kicking in late.....
it doesn't take a genius to notice that it's that's the case on QT Creator 12 with QT 5.15.16 on default settings and NDK/SDK installed by Creator itself, something is not right
-
Go ahead and try setup QT Creator 12 and Android SDK on fresh Windows 11
Kits won't get created (..) openssl won't get downloaded. it's all messed up
-
one of many examples on fresh windows install through online installer Commercial edition
-
-
@CodesInChaoss did you click apply button after resetting.
-
@JoeCFD yes as of now, we've deployed like 3 VMs already , we're diving into crazy things such as updating maveen, gradle, checking any binary dependancies, diving deep into the internals of GDB..... it does NOT work.
take a look at what official Android site says about debugging with GDB