Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-54733

VTHandler in EGLFS breaks GDB Remote Debugging

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P2: Important
    • 5.6.2
    • 5.5.0, 5.5.1
    • QPA: EGLFS
    • 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.

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            lagocs Laszlo Agocs
            stjosh Josua Hunziker
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes