stream << s.to;
stream << s.line;
stream << s.address;
+ stream << s.usable;
return stream;
}
stream >> s.to;
stream >> s.line;
stream >> s.address;
+ stream >> s.usable;
return stream;
}
frame.from = _(frameMi.findChild("from").data());
frame.line = frameMi.findChild("line").data().toInt();
frame.address = frameMi.findChild("addr").data().toULongLong(0, 16);
+ frame.usable = QFileInfo(frame.file).isReadable();
return frame;
}
s >> function >> file >> frame.line;
frame.function = QString::fromUtf8(function);
frame.file = QString::fromUtf8(file);
+ frame.usable = QFileInfo(frame.file).isReadable();
return s;
}
////////////////////////////////////////////////////////////////////////
StackFrame::StackFrame()
- : level(-1), line(-1), address(0)
+ : level(-1), line(-1), address(0), usable(false)
{}
void StackFrame::clear()
bool StackFrame::isUsable() const
{
- return !file.isEmpty() && QFileInfo(file).isReadable();
+ return usable;
}
QString StackFrame::toString() const
QString to; // Used in ScriptEngine only.
qint32 line;
quint64 address;
+ bool usable;
Q_DECLARE_TR_FUNCTIONS(StackHandler)
};