为什么QProcess(Qt5.15.1)和GDB会导致缺少符号?

为什么QProcess(Qt5.15.1)和GDB会导致缺少符号?,qt,gdb,debug-symbols,qprocess,arch,Qt,Gdb,Debug Symbols,Qprocess,Arch,我目前在调试通过QProcess启动进程的程序时遇到一些问题。 在没有dbg的情况下简单地执行二进制文件工作得很好,但是当我尝试用gdb调试可执行文件时,当进程启动时,我得到了一个SIGTRAP。 之后,堆栈总是显示“?”而不是函数名。 继续时,我得到一个信号。 我发现在没有设置断点的情况下,陷阱并没有产生 在我的项目中,我还获得以下输出: Probes-based dynamic linker interface failed. 我不确定这是否与加载的插件或库有关 可以使用以下代码再现该问题

我目前在调试通过QProcess启动进程的程序时遇到一些问题。 在没有dbg的情况下简单地执行二进制文件工作得很好,但是当我尝试用gdb调试可执行文件时,当进程启动时,我得到了一个SIGTRAP。 之后,堆栈总是显示“?”而不是函数名。 继续时,我得到一个信号。 我发现在没有设置断点的情况下,陷阱并没有产生

在我的项目中,我还获得以下输出:

Probes-based dynamic linker interface failed.
我不确定这是否与加载的插件或库有关

可以使用以下代码再现该问题(从“基于探针的动态链接器接口失败”输出除外):

#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();
}
#包括
#包括
#包括
int main(int argc,char*argv[])
{
qcorea应用程序(argc、argv);
qprocessproc;
QString exe=“echo”;
QStringList参数;

我遇到了完全相同的问题。你找到解决方案了吗?或者这是Qt中的一个新错误?很抱歉,响应太晚。我最近没有遇到上述问题。由于在arch linux发行版中升级了包,我假设问题已经解决。不幸的是,我不知道问题的确切原因。在我们的软件我在使用qprocess和gdb时不再有问题。如果您仍然面临这个问题,您使用的版本可能会很有趣(如果问题是由我提到的某个软件包引起的)。