Russian Qt Forum

Qt => Общие вопросы => Тема начата: santaclaus от Декабрь 08, 2009, 13:40



Название: QProcess, утечка памяти
Отправлено: santaclaus от Декабрь 08, 2009, 13:40
Всем привет!
Есть код

Код:
QProcess *pd = new QProcess(this); //новый процесс
QStringList arg; //аргументы
arg << timeMake;
QString num, pPidStr;
QMapIterator<QString, int> i(clList);
while (i.hasNext()){
    i.next();
    num.setNum(i.value());
    arg << i.key() << num;
}
qint64 pPid; //переменная под ПИД, запущенного процесса
pd->startDetached("./DataCreator", arg, "./", &pPid); //запуск процесса
pPidLastProcess.setNum(pPid);
std::cout << "Run process pid = " << pPid << std::endl;
pd->kill();
delete pd;
checkProcessFinish();//проверка когда процесс отработается.

Все работает хорошо.
Этот код запускается повторно как только процесс, который запущен отработается!
Только память потихоньку пожирает.
Подскажи где могут быть грабли?



Система CentOS 5. Qt 4.5.


Название: Re: QProcess, утечка памяти
Отправлено: Rcus от Декабрь 08, 2009, 14:47
Когда это кончится...
Цитировать
bool QProcess::startDetached ( const QString & program, const QStringList & arguments, const QString & workingDirectory, qint64 * pid = 0 )   [static]

И чем измеряли?


Название: Re: QProcess, утечка памяти
Отправлено: santaclaus от Декабрь 08, 2009, 14:52
top'ом смотрю....


причем программа работает и буквально через 3 минуты видно что память начинает ползти вверх...
пробовал делать через start(prog, arg) и deleteLater() привязывать, но результат тот же...


Название: Re: QProcess, утечка памяти
Отправлено: Rcus от Декабрь 08, 2009, 17:40
valgrind ./prog чтобы узнать если утечки. valgrind --tool=massif ./prog чтобы узнать куда ушла память, ибо top не показатель.