Using GDB pretty printers in QtCreator hangs GDB.



  • Hello.

    I've noticed that when enabling GDB pretty printers in QtCreator, and then starting a debugging session, there is a loading icon on the right panel where all the local variables are shown, and stepping over/in doesn't work. When looking into a resource monitor, GDB can be seen taking up a lot of memory, which is increasing. After some time all of the available RAM will be consumed by GDB and the system will hang.

    This doesn't happen when pretty printers are disabled, and I can debug juts fine.

    Does anyone know why this would happen?
    Thank you in advance!


  • Qt Champions 2018

    Hi @limepixl, welcome!

    • Which operating system is that?
    • Which Qt Creator version?
    • Which GDB version?

    Regards



  • @aha_1980

    I am using Manjaro KDE, here is the exact version.

    0_1567085878076_30a982a5-3b9a-4dce-b58b-40b8e5f6dcbd-image.png

    I'm using GDB 8.3, along with QtCreator 4.9.2, based on Qt 5.13.0.
    The project I'm testing this with is a normal CMake project.


  • Qt Champions 2018

    @limepixl Ok, just to be sure, you are talking about "Load system GDB pretty printers" from Tools > Options > Debuggers?

    For me, enabling that option works, but I only have GDB 8.1.0 from Ubuntu. Maybe that's that difference?

    Regards



  • @aha_1980

    Yes, my issue is with that option.
    Hmm, I can try downgrading gdb and testing if it works with version 8.1.0. I'll get back to you on this



  • Due to me being on a derivative of ArchLinux, I am only able to downgrade to GDB 8.2.1. After downgrading this issue still persists.

    I guess without the ability to downgrade any further (because of possible dependency breakage), I'll leave the option turned off for now.


  • Qt Champions 2018

    @limepixl

    Now tracked as QTCREATORBUG-22887

    I've linked it for you, so please mark this topic as SOLVED now.

    Regards


 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.