function crashes
-
wrote on 8 May 2018, 09:15 last edited by
here is the function to update cpu information .
when i open this app 2 at the same time it crashes.void ResourcesPage::updateCpuChart() { static int second = 0; QList<int> cpuPercents = im->getCpuPercents(); QVector<QLineSeries *> seriesList = cpuChart->getSeriesList(); for (int j = 0; j < seriesList.count(); j++){ int p = cpuPercents.at(j+1); for (int i = 0; i < (second < 61 ? second : 61); i++) seriesList.at(j)->replace(i, (i+1), seriesList.at(j)->at(i).y()); seriesList.at(j)->insert(0, QPointF(0, p)); seriesList.at(j)->setName(QString("CPU%1 %2%").arg(j+1).arg(p)); if(second > 61) seriesList.at(j)->removePoints(61, 1); } second++; cpuChart->setSeriesList(seriesList); }
HERE IS DEBUG OUTPUT OF THIS ERROR.
-
Hi
For second app, maybe is is empty ?
Something like
seriesList.at(j)->replace(i, (i+1), seriesList.at(j)->at(i).y());might crash if seriesList is empty or i is out of bounds.
I would add more checks and see what is going on. -
Hi
For second app, maybe is is empty ?
Something like
seriesList.at(j)->replace(i, (i+1), seriesList.at(j)->at(i).y());might crash if seriesList is empty or i is out of bounds.
I would add more checks and see what is going on. -
here is the function to update cpu information .
when i open this app 2 at the same time it crashes.void ResourcesPage::updateCpuChart() { static int second = 0; QList<int> cpuPercents = im->getCpuPercents(); QVector<QLineSeries *> seriesList = cpuChart->getSeriesList(); for (int j = 0; j < seriesList.count(); j++){ int p = cpuPercents.at(j+1); for (int i = 0; i < (second < 61 ? second : 61); i++) seriesList.at(j)->replace(i, (i+1), seriesList.at(j)->at(i).y()); seriesList.at(j)->insert(0, QPointF(0, p)); seriesList.at(j)->setName(QString("CPU%1 %2%").arg(j+1).arg(p)); if(second > 61) seriesList.at(j)->removePoints(61, 1); } second++; cpuChart->setSeriesList(seriesList); }
HERE IS DEBUG OUTPUT OF THIS ERROR.
wrote on 8 May 2018, 09:51 last edited by Taz742 5 Aug 2018, 09:53@saber said in function crashes:
for (int i = 0; i < (second < 61 ? second : 61); i++) seriesList.at(j)->replace(i, (i+1), seriesList.at(j)->at(i).y());
maybe
for (int i = 0; i < std::min(std::min(second, seriesList.at(j)->points().size() - 1), 61); i++) seriesList.at(j)->replace(i, (i+1), seriesList.at(j)->at(i).y());
?
-
@saber said in function crashes:
for (int i = 0; i < (second < 61 ? second : 61); i++) seriesList.at(j)->replace(i, (i+1), seriesList.at(j)->at(i).y());
maybe
for (int i = 0; i < std::min(std::min(second, seriesList.at(j)->points().size() - 1), 61); i++) seriesList.at(j)->replace(i, (i+1), seriesList.at(j)->at(i).y());
?
-
@saber
Hi
Why not debug it then?
Should be easy to spot what is going on in debugger since you seem to hard crash. -
@saber
I put my money you crash in the
seriesList.at(j)->at(i).y() part. -
@saber
I put my money you crash in the
seriesList.at(j)->at(i).y() part. -
@saber
Hi
I would insert qDebug() for size() of all lists involved and
also dump the values of i and j.
Its hard to guess at since normally one inspects the runtime variables in the debugger to see if all
are within bounds.what does seriesList.at(j) return ? a QString or list ?
-
@saber
Hi
I would insert qDebug() for size() of all lists involved and
also dump the values of i and j.
Its hard to guess at since normally one inspects the runtime variables in the debugger to see if all
are within bounds.what does seriesList.at(j) return ? a QString or list ?
-
Lifetime Qt Championwrote on 11 May 2018, 10:34 last edited by mrjj 5 Nov 2018, 10:39
@saber
Ok so its a Qlineseries pointer
Looking at its replace, it seems to be this one ?
void QXYSeries::replace(int index, qreal newX, qreal newY)anyway, you can split to multiple statements so its more clear which part that crashes.
for (int i = 0; i < (second < 61 ? second : 61); i++) {
auto Line= seriesList.at(j);
auto value = seriesList.at(j)->at(i).y();
Line->replace(i, (i+1),value );
} -
@saber
Ok so its a Qlineseries pointer
Looking at its replace, it seems to be this one ?
void QXYSeries::replace(int index, qreal newX, qreal newY)anyway, you can split to multiple statements so its more clear which part that crashes.
for (int i = 0; i < (second < 61 ? second : 61); i++) {
auto Line= seriesList.at(j);
auto value = seriesList.at(j)->at(i).y();
Line->replace(i, (i+1),value );
} -
@saber
Hi
Will it work on any linux?
Also, you are trying to fix the
Known Bugs
Opening two dashboard ,crash the whole app. <<< -- that one ? -
@saber
Hi
Will it work on any linux?
Also, you are trying to fix the
Known Bugs
Opening two dashboard ,crash the whole app. <<< -- that one ?wrote on 12 May 2018, 03:23 last edited by saber 5 Dec 2018, 03:25@mrjj
yes it wiil run on any linux. as far as i know.
because it has little dependences(qt,file,libmagic-dev/libmagic-mgc/libmagic1)
and yes for now i want to fix the "Opening two dashboard ,crash the whole app"
but it also have other bugs heremy way to fix all this and add this feature by opening issue in qt forum.
as i don't know the high level coding.i was intendant to do a invitation to join this project in this forum .but i was woried as it will be right way to that.
if you have some time to fix this issue........ -
@mrjj
yes it wiil run on any linux. as far as i know.
because it has little dependences(qt,file,libmagic-dev/libmagic-mgc/libmagic1)
and yes for now i want to fix the "Opening two dashboard ,crash the whole app"
but it also have other bugs heremy way to fix all this and add this feature by opening issue in qt forum.
as i don't know the high level coding.i was intendant to do a invitation to join this project in this forum .but i was woried as it will be right way to that.
if you have some time to fix this issue........@saber
Ok, seems like a big project.
What ever happen to the person that wrote the code ? -
@mrjj
it is not a bigg project.
me and my friend made this app.
my view , his code. he is has no interest and time for it now.
so what you are thinking to .....@saber
Ok, so you Designed it and he programmed it. sweet.
Currently im spring cleaning pc so i have no linux around before monday.But if its easy to build, i might have a look at that bug next week.
That said i have huge project at work so I cant help program it
like project member. -
@saber
Ok, so you Designed it and he programmed it. sweet.
Currently im spring cleaning pc so i have no linux around before monday.But if its easy to build, i might have a look at that bug next week.
That said i have huge project at work so I cant help program it
like project member.
1/32