最近現れたばかりの奇妙な問題があります。
Qt アプリ内から外部バイナリにアクセスすると、アプリが次のエラーでクラッシュします。
Exception Type: EXC_CRASH (SIGABRT)
しかし、Qt Creator 内の「ビルドして実行」から実行すると、アプリケーションで外部バイナリにヒットしたポイントにアクセスすると、すべてが正常に実行されます。
これは、アプリがQtクリエーターの外部からクラッシュしたときにヒットした関数です
QString Api::getVideoFrame(QString filename, QString position)
{
const QString ffmpeg = QDir::currentPath()+"/ffmpeg"; //mac version
QProcess process;
QStringList args;
args << "-ss" << position
<< "-i" << filename
<< "-f" << "image2"
<< "-vframes" << "1"
//<< "-vcodec" << "bmp"
<< "pipe:1";
process.start(ffmpeg, args);
process.waitForFinished();
return QString(process.readAllStandardOutput().toBase64());
}
この場合、ffmpeg だけでなく、他の外部バイナリにアクセスするときにもクラッシュします。
QDir::currentPath() と関係があると感じています。パスを台無しにすると、Qt Creator 内からもクラッシュするためです。
明らかに、対応するバイナリを Contents/MacOS/ フォルダーの実行可能ファイルの横に追加しました
これをデバッグする方法が本当にわかりません..これを解決する方法の手がかりはありますか?