Commit b84ce82e authored by Arvid Ephraim Picciani's avatar Arvid Ephraim Picciani
Browse files

debugger: Engine decides now if a StackFrame is considered usable

parent 0ab67db5
...@@ -92,6 +92,7 @@ QDataStream &operator<<(QDataStream &stream, const StackFrame &s) ...@@ -92,6 +92,7 @@ QDataStream &operator<<(QDataStream &stream, const StackFrame &s)
stream << s.to; stream << s.to;
stream << s.line; stream << s.line;
stream << s.address; stream << s.address;
stream << s.usable;
return stream; return stream;
} }
...@@ -106,6 +107,7 @@ QDataStream &operator>>(QDataStream &stream, StackFrame &s) ...@@ -106,6 +107,7 @@ QDataStream &operator>>(QDataStream &stream, StackFrame &s)
stream >> s.to; stream >> s.to;
stream >> s.line; stream >> s.line;
stream >> s.address; stream >> s.address;
stream >> s.usable;
return stream; return stream;
} }
......
...@@ -2853,6 +2853,7 @@ StackFrame GdbEngine::parseStackFrame(const GdbMi &frameMi, int level) ...@@ -2853,6 +2853,7 @@ StackFrame GdbEngine::parseStackFrame(const GdbMi &frameMi, int level)
frame.from = _(frameMi.findChild("from").data()); frame.from = _(frameMi.findChild("from").data());
frame.line = frameMi.findChild("line").data().toInt(); frame.line = frameMi.findChild("line").data().toInt();
frame.address = frameMi.findChild("addr").data().toULongLong(0, 16); frame.address = frameMi.findChild("addr").data().toULongLong(0, 16);
frame.usable = QFileInfo(frame.file).isReadable();
return frame; return frame;
} }
......
...@@ -138,6 +138,7 @@ static QDataStream &operator>>(QDataStream &s, StackFrame &frame) ...@@ -138,6 +138,7 @@ static QDataStream &operator>>(QDataStream &s, StackFrame &frame)
s >> function >> file >> frame.line; s >> function >> file >> frame.line;
frame.function = QString::fromUtf8(function); frame.function = QString::fromUtf8(function);
frame.file = QString::fromUtf8(file); frame.file = QString::fromUtf8(file);
frame.usable = QFileInfo(frame.file).isReadable();
return s; return s;
} }
......
...@@ -45,7 +45,7 @@ namespace Internal { ...@@ -45,7 +45,7 @@ namespace Internal {
//////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////
StackFrame::StackFrame() StackFrame::StackFrame()
: level(-1), line(-1), address(0) : level(-1), line(-1), address(0), usable(false)
{} {}
void StackFrame::clear() void StackFrame::clear()
...@@ -60,7 +60,7 @@ void StackFrame::clear() ...@@ -60,7 +60,7 @@ void StackFrame::clear()
bool StackFrame::isUsable() const bool StackFrame::isUsable() const
{ {
return !file.isEmpty() && QFileInfo(file).isReadable(); return usable;
} }
QString StackFrame::toString() const QString StackFrame::toString() const
......
...@@ -59,6 +59,7 @@ public: ...@@ -59,6 +59,7 @@ public:
QString to; // Used in ScriptEngine only. QString to; // Used in ScriptEngine only.
qint32 line; qint32 line;
quint64 address; quint64 address;
bool usable;
Q_DECLARE_TR_FUNCTIONS(StackHandler) Q_DECLARE_TR_FUNCTIONS(StackHandler)
}; };
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment