Why do QProcess (Qt 5.15.1) and GDB lead to missing symbols?

Viewed 249

I am currently having some trouble debugging a program that starts processes via QProcess. Simply executing the binary without dbg works just fine but when I try to debug the executable with gdb I am getting a SIGTRAP when the process has started. After that the stack always shows '??' instead of function names. When continuing I get a SIGILL. I found out that the trap is not caused when no breakpoint is set.

In my project I also get following output:

Probes-based dynamic linker interface failed.

I am not sure whether this is related to loaded plugins or libraries.

The problem can be reproduced (except from the " Probes-based dynamic linker interface failed." output) with the following code:

#include <QCoreApplication>

#include <QProcess>
#include <QDebug>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QProcess proc;
    QString exe = "echo";
    QStringList arguments;
    arguments << "Test";

    proc.start(exe, arguments);
    if (!proc.waitForFinished()) {
        qDebug() << "failed to start" << proc.exitCode() << proc.errorString();
    }

    qDebug() << "process finished";
    qDebug() << proc.readAllStandardOutput();

    return a.exec();
}

My OS is arch linux (up to date)

  • Qt5: qt5-base 5.15.1-1
  • GDB: gdb 9.2-1
  • clang++: clang 10.0.1-1

Does anybody have an idea what is causing the SIGTRAP when debugging with dbg?

0 Answers
Related