OSDN Git Service

debugger: Engine decides now if a StackFrame is considered usable
authorArvid Ephraim Picciani <arvid.picciani@nokia.com>
Wed, 1 Dec 2010 14:57:13 +0000 (15:57 +0100)
committerArvid Ephraim Picciani <arvid.picciani@nokia.com>
Wed, 1 Dec 2010 14:57:13 +0000 (15:57 +0100)
src/plugins/debugger/debuggerstreamops.cpp
src/plugins/debugger/gdb/gdbengine.cpp
src/plugins/debugger/qml/qmlengine.cpp
src/plugins/debugger/stackframe.cpp
src/plugins/debugger/stackframe.h

index 85c0438..067eab3 100644 (file)
@@ -92,6 +92,7 @@ QDataStream &operator<<(QDataStream &stream, const StackFrame &s)
     stream << s.to;
     stream << s.line;
     stream << s.address;
+    stream << s.usable;
     return stream;
 }
 
@@ -106,6 +107,7 @@ QDataStream &operator>>(QDataStream &stream, StackFrame &s)
     stream >> s.to;
     stream >> s.line;
     stream >> s.address;
+    stream >> s.usable;
     return stream;
 }
 
index d7d9e3d..385ffdf 100644 (file)
@@ -2853,6 +2853,7 @@ StackFrame GdbEngine::parseStackFrame(const GdbMi &frameMi, int level)
     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;
 }
 
index fd65d22..f6b1804 100644 (file)
@@ -138,6 +138,7 @@ static QDataStream &operator>>(QDataStream &s, StackFrame &frame)
     s >> function >> file >> frame.line;
     frame.function = QString::fromUtf8(function);
     frame.file = QString::fromUtf8(file);
+    frame.usable = QFileInfo(frame.file).isReadable();
     return s;
 }
 
index da62a22..4054ff9 100644 (file)
@@ -45,7 +45,7 @@ namespace Internal {
 ////////////////////////////////////////////////////////////////////////
 
 StackFrame::StackFrame()
-  : level(-1), line(-1), address(0)
+  : level(-1), line(-1), address(0), usable(false)
 {}
 
 void StackFrame::clear()
@@ -60,7 +60,7 @@ void StackFrame::clear()
 
 bool StackFrame::isUsable() const
 {
-    return !file.isEmpty() && QFileInfo(file).isReadable();
+    return usable;
 }
 
 QString StackFrame::toString() const
index d185e46..22dfcbd 100644 (file)
@@ -59,6 +59,7 @@ public:
     QString to;    // Used in ScriptEngine only.
     qint32 line;
     quint64 address;
+    bool usable;
 
     Q_DECLARE_TR_FUNCTIONS(StackHandler)
 };