qtqt-creatormemcheck

QTCreator Memcheck performing analysis without letting me run the actual program?


I am attempting to use QTCreator's Memcheck tool to analyze the memory of a QT project, which is a dynamic library. It uses a QT Gui (QMainWindow) to allow the user to select a file, which is then processed, and then eventually returns to the mainwindow.

However, I cannot seem to use Memcheck properly.

When I select "Memcheck" and hit run, it instantly goes to "Analyzing memory" without ever letting the Gui pop up.

This is problematic. How can I get memcheck to work with this program?


Solution

  • I had two main issues:

    1: Valgrind does not seem to play nice with QT Gui applications. It generates logs that are thousands of entries long for all the work QT is doing before it even gets to my application.

    I had to make a separate, small non-GUI C++ program that would drive instead of the GUI application.

    2: When trying to run from the command line, I needed to set an environment variable by using export. This needs to be the same as LD_LIBRARY_PATHS in QT Creator.

    So I ran:

    export LD_LIBRARY_PATH=X where X was the exact value I copied from LD_LIBRARY_PATHS in the variable from the QT Project.

    Note: Running from the command line may have not be neccesary now that it isn't a GUI Application, memcheck might have passed just fine. Haven't tested since.