Important: Please read the Qt Code of Conduct -

QTCreator 2.3.0 debugger detects wrong ABI.

  • Hi everybody.
    I installed version 1.1.3 QtSdk and qtCreator 2.3.0 and moved one of projects from qt 4.7.0 to current 4.7.4 revision, I'm using windows XP.

    The install path is C:\Qt\QtSdk, and my projects are in c:\Qt.

    Program builds and run fine in QtCreator, but I cannot debug it anymore.

    Looking at the debugger log file, I see that if I build one of the examples in the SDK, I get the following log lines:

    <start of log file>
    *sStarting debugger 'GdbEngine' for ABI 'x86-windows-msys-pe-32bit'...*dStart parameters: 'digitalclock' mode: 1
    dABI: x86-windows-msys-pe-32bit
    dExecutable: C:\Qt\QtSdk\Examples\4.7\widgets\digitalclock-build-desktop-Qt_4_7_4_for_Desktop_-MinGW_4_4__Qt_SDK__Debug\debug\digitalclock.exe
    dDirectory: C:\Qt\QtSdk\Examples\4.7\widgets\digitalclock-build-desktop-Qt_4_7_4_for_Desktop
    dDebugger: C:\Qt\QtSdk\pythongdb\python_2.7based\gdb-i686-pc-mingw32.exe
    dProject: C:\Qt\QtSdk\Examples\4.7\widgets\digitalclock (built: C:\Qt\QtSdk\Examples\4.7\widgets\digitalclock-build-desktop-Qt_4_7_4_for_Desktop
    dQt: C:\Qt\QtSdk\Desktop\Qt\4.7.4\mingw
    dQML server:
    <end of log file>

    And the debugger works as expected.

    If I start the debugger on my own project, the debugger doesn't work, and the log file shows that the debugger engine is cdb instead of gdb:

    <start of log>
    sStarting debugger 'CdbEngine' for ABI 'x86-windows-msvc2008-pe-32bit'...
    dStart parameters: 'Ziview in ZS2I3' mode: 1
    dABI: x86-windows-msvc2008-pe-32bit
    dExecutable: C:\zs2i3\ziView.exe
    dDirectory: C:\ZS2I3
    dDebugger: C:\Qt\QtSdk\pythongdb\python_2.7based\gdb-i686-pc-mingw32.exe
    dProject: C:\Qt\ZiView (built: C:\Qt\ziview-build-desktop)
    dQt: C:\Qt\QtSdk\Desktop\Qt\4.7.4\mingw
    dQML server:
    <end of log>

    And the debugger stops immediately.
    I see that the debugger starts cdb (which is not installed) instead of gdb.
    Installing cdb doesn't solve the problem, of course.

    The toolchain settings in the project is the same for both projects (the mingw installed with the sdk), while my own uses some more dlls.
    I tried to ceate a clone project starting from scratch, with no luck.

    I'd like to know how to fix this behaviour (e.g. forcing 'GdbEngine').

    Thanks in advance for any hint on the subject.

  • Moderators

    Have you considered opening a "bug report":

    Which compilers are you using to build?

  • Thanks for your answer, Tobias.

    To build the application, I just used mingw which comes with the QtSDK 1.1.3, and about the bug report, I'll do it right now.

  • I found that debugger doesn't work if I debug the application in the deploy directory.
    If I debug it in build directory, the debugger detects the correct ABI.
    Inside the deploy directory I put all the needed qt dlls and plugins, and there are several other windows executables.

    Most likely, qtcreator looks inside the directory and finds a file compiled with msvc, but unfortunately I couldn't find where I could fix the problem. Anybody knows how the ABI detection mechanism works?

  • Moderators

    Oh, I do know how that code works, I wrote it:-)

    At that point it should just look at the executable itself... Can you send the misdetected one to me, please? Thanks!

    Which bug report is it by the way?

  • I see you found out without my help, and the executable was attached to the bug report.

    Anyway, for everybody's info, it's QTCREATORBUG-6134

Log in to reply