Unter Linux krieg ich nicht deterministische Fehler.
Der code:
Code: Alles auswählen
QProcess testproc(this);
printf("vor start\n");
testproc.start("/usr/bin/find");
printf("nach start\n");
printf("error string %s, exit code %d \n",testproc.errorString().toStdString().c_str(), testproc.exitCode());
bool started = testproc.waitForStarted();
printf("started flag %d\n",started);
bool finished = testproc.waitForFinished();
testproc.terminate();
testproc.kill();
printf("finished flag %d, \n", finished);
if(!finished || ( finished && testproc.exitStatus()!=QProcess::NormalExit ))
{
printf("exit %d, \n",testproc.exitStatus());
printf("%s\n",testproc.errorString().toStdString().c_str());
throw std::exception();
}
Die letzte Zeile gehört zum Boost Unit Test Framework, aber dennoch ist die Ausgabe bis dahin falsch, es fehlen eine Menge an Ausgaben und ich weiß einfach nicht, was das Problem sein könntevor start
nach start
error string Unknown error, exit code 0
unknown location(0): fatal error in "test_name": memory access violation at address: 0x00000000: no mapping at fault address