Details
-
Bug
-
Resolution: Done
-
P2: Important
-
5.5.0, 5.5.1
-
None
-
Linux/Qt 5.5.1 built with Yocto (meta-qt5 Yocto layer). Processor is a Colibri i.MX6.
-
97318a3d5fc3a2e9b97c7dd5a49ad0e09acbeaaa
Description
We are developing an application running on an ARM embedded system using the EGLFS platform. When upgrading Qt from 5.4.1 to 5.5.1, we found that remote debugging the application on the target platform (an i.MX6 based board) was misbehaving, i.e., pausing execution or setting / removing a breakpoint while the application is running was not possible anymore, instead, the debugging session terminated immediately with the message "Inferior 1 (process XXX) exited with code 1".
After hours of searching, I finally found the following commit, adding a handler for SIGINT and exiting the application in void QFbVtHandler::handleInt(). Since GDB seems to send a SIGINT to the application when pausing or setting / removing a breakpoint, this is where things seem to go wrong.
I could fix this issue for now by creating a patch to qfbvthandler.cpp, simply undefining VTH_ENABLED. This however seems to be quite a crude approach.
Btw, I assume that the behaviour is still the same for Qt 5.6 and Qt 5.7 . qfbvthandler.cpp has changed since Qt 5.5 (mainly due to this commit), however, _exit(1) is still called once a SIGINT is received. I was however not able to test it and therefore only tagged version 5.5.0/5.5.1 as affected by this bug.