forked from qt-creator/qt-creator
debugger: Engine decides now if a StackFrame is considered usable
This commit is contained in:
@@ -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)
|
|||||||
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)
|
|||||||
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)
|
|||||||
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 {
|
|||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
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()
|
|||||||
|
|
||||||
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:
|
|||||||
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)
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user