为什么QProcess(Qt5.15.1)和GDB会导致缺少符号?
我目前在调试通过QProcess启动进程的程序时遇到一些问题。 在没有dbg的情况下简单地执行二进制文件工作得很好,但是当我尝试用gdb调试可执行文件时,当进程启动时,我得到了一个SIGTRAP。 之后,堆栈总是显示“?”而不是函数名。 继续时,我得到一个信号。 我发现在没有设置断点的情况下,陷阱并没有产生 在我的项目中,我还获得以下输出:为什么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. 我不确定这是否与加载的插件或库有关 可以使用以下代码再现该问题
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时不再有问题。如果您仍然面临这个问题,您使用的版本可能会很有趣(如果问题是由我提到的某个软件包引起的)。