Valgrind: Introduce Frame::filePath().

Change-Id: I40d1b7f739ea905bbcca1a388bada3e077b7c137
Reviewed-by: hjk <hjk@theqtcompany.com>
This commit is contained in:
Christian Kandeler
2015-06-26 14:12:33 +02:00
parent 36173e25ff
commit eb848eb89f
11 changed files with 63 additions and 56 deletions

View File

@@ -83,9 +83,9 @@ static QString makeFrameName(const Frame &frame, const QString &relativeTo,
bool link = true, const QString &linkAttr = QString()) bool link = true, const QString &linkAttr = QString())
{ {
const QString d = frame.directory(); const QString d = frame.directory();
const QString f = frame.file(); const QString f = frame.fileName();
const QString fn = frame.functionName(); const QString fn = frame.functionName();
const QString fullPath = d + QLatin1Char('/') + f; const QString fullPath = frame.filePath();
QString path; QString path;
if (!d.isEmpty() && !f.isEmpty()) if (!d.isEmpty() && !f.isEmpty())

View File

@@ -299,11 +299,11 @@ public:
//find the first frame belonging to the project //find the first frame belonging to the project
if (!m_projectFiles.isEmpty()) { if (!m_projectFiles.isEmpty()) {
foreach (const Frame &frame, frames) { foreach (const Frame &frame, frames) {
if (frame.directory().isEmpty() || frame.file().isEmpty()) if (frame.directory().isEmpty() || frame.fileName().isEmpty())
continue; continue;
//filepaths can contain "..", clean them: //filepaths can contain "..", clean them:
const QString f = QFileInfo(frame.directory() + QLatin1Char('/') + frame.file()).absoluteFilePath(); const QString f = QFileInfo(frame.filePath()).absoluteFilePath();
if (m_projectFiles.contains(f)) if (m_projectFiles.contains(f))
return frame; return frame;
} }

View File

@@ -238,8 +238,8 @@ QString Error::toXml() const
stream << " <fn>" << frame.functionName() << "</fn>\n"; stream << " <fn>" << frame.functionName() << "</fn>\n";
if (!frame.directory().isEmpty()) if (!frame.directory().isEmpty())
stream << " <dir>" << frame.directory() << "</dir>\n"; stream << " <dir>" << frame.directory() << "</dir>\n";
if (!frame.file().isEmpty()) if (!frame.fileName().isEmpty())
stream << " <file>" << frame.file() << "</file>\n"; stream << " <file>" << frame.fileName() << "</file>\n";
if (frame.line() != -1) if (frame.line() != -1)
stream << " <line>" << frame.line() << "</line>"; stream << " <line>" << frame.line() << "</line>";
stream << " </frame>\n"; stream << " </frame>\n";

View File

@@ -111,16 +111,13 @@ Frame ErrorListModel::Private::findRelevantFrame(const Error &error) const
QString ErrorListModel::Private::formatAbsoluteFilePath(const Error &error) const QString ErrorListModel::Private::formatAbsoluteFilePath(const Error &error) const
{ {
const Frame f = findRelevantFrame(error); return findRelevantFrame(error).filePath();
if (!f.directory().isEmpty() && !f.file().isEmpty())
return f.directory() + QLatin1Char('/') + f.file();
return QString();
} }
QString ErrorListModel::Private::formatLocation(const Error &error) const QString ErrorListModel::Private::formatLocation(const Error &error) const
{ {
const Frame frame = findRelevantFrame(error); const Frame frame = findRelevantFrame(error);
const QString file = frame.file(); const QString file = frame.fileName();
if (!frame.functionName().isEmpty()) if (!frame.functionName().isEmpty())
return frame.functionName(); return frame.functionName();
if (!file.isEmpty()) { if (!file.isEmpty()) {
@@ -185,7 +182,7 @@ QVariant ErrorListModel::Private::errorData(int row, int column, int role) const
case AbsoluteFilePathRole: case AbsoluteFilePathRole:
return formatAbsoluteFilePath(error); return formatAbsoluteFilePath(error);
case FileRole: case FileRole:
return findRelevantFrame(error).file(); return findRelevantFrame(error).fileName();
case LineRole: { case LineRole: {
const qint64 line = findRelevantFrame(error).line(); const qint64 line = findRelevantFrame(error).line();
return line > 0 ? line : QVariant(); return line > 0 ? line : QVariant();

View File

@@ -48,7 +48,7 @@ public:
return ip == other.ip return ip == other.ip
&& object == other.object && object == other.object
&& functionName == other.functionName && functionName == other.functionName
&& file == other.file && fileName == other.fileName
&& directory == other.directory && directory == other.directory
&& line == other.line; && line == other.line;
} }
@@ -56,7 +56,7 @@ public:
quint64 ip; quint64 ip;
QString object; QString object;
QString functionName; QString functionName;
QString file; QString fileName;
QString directory; QString directory;
int line; int line;
}; };
@@ -126,14 +126,14 @@ void Frame::setFunctionName(const QString &functionName)
d->functionName = functionName; d->functionName = functionName;
} }
QString Frame::file() const QString Frame::fileName() const
{ {
return d->file; return d->fileName;
} }
void Frame::setFile(const QString &file) void Frame::setFileName(const QString &file)
{ {
d->file = file; d->fileName = file;
} }
QString Frame::directory() const QString Frame::directory() const
@@ -146,6 +146,14 @@ void Frame::setDirectory(const QString &directory)
d->directory = directory; d->directory = directory;
} }
QString Frame::filePath() const
{
QString f;
if (!directory().isEmpty())
f.append(directory()).append(QLatin1Char('/'));
return f.append(fileName());
}
int Frame::line() const int Frame::line() const
{ {
return d->line; return d->line;

View File

@@ -59,12 +59,14 @@ public:
QString functionName() const; QString functionName() const;
void setFunctionName(const QString &functionName); void setFunctionName(const QString &functionName);
QString file() const; QString fileName() const;
void setFile(const QString &file); void setFileName(const QString &fileName);
QString directory() const; QString directory() const;
void setDirectory(const QString &directory); void setDirectory(const QString &directory);
QString filePath() const;
int line() const; int line() const;
void setLine(int line); void setLine(int line);

View File

@@ -43,8 +43,8 @@ namespace XmlProtocol {
QString toolTipForFrame(const Frame &frame) QString toolTipForFrame(const Frame &frame)
{ {
QString location; QString location;
if (!frame.file().isEmpty()) { if (!frame.fileName().isEmpty()) {
location = frame.directory() + QLatin1Char('/') + frame.file(); location = frame.filePath();
if (frame.line() > 0) if (frame.line() > 0)
location += QLatin1Char(':') + QString::number(frame.line()); location += QLatin1Char(':') + QString::number(frame.line());
} }

View File

@@ -517,7 +517,7 @@ Frame Parser::Private::parseFrame()
else if (name == QLatin1String("dir")) else if (name == QLatin1String("dir"))
frame.setDirectory(blockingReadElementText()); frame.setDirectory(blockingReadElementText());
else if (name == QLatin1String("file")) else if (name == QLatin1String("file"))
frame.setFile( blockingReadElementText()); frame.setFileName(blockingReadElementText());
else if (name == QLatin1String("line")) else if (name == QLatin1String("line"))
frame.setLine(parseInt64(blockingReadElementText(), QLatin1String("error/frame/line"))); frame.setLine(parseInt64(blockingReadElementText(), QLatin1String("error/frame/line")));
else if (reader.isStartElement()) else if (reader.isStartElement())

View File

@@ -60,7 +60,7 @@ public:
static QString makeName(const Frame &frame) static QString makeName(const Frame &frame)
{ {
const QString d = frame.directory(); const QString d = frame.directory();
const QString f = frame.file(); const QString f = frame.fileName();
const QString fn = frame.functionName(); const QString fn = frame.functionName();
if (!fn.isEmpty()) if (!fn.isEmpty())
return fn; return fn;
@@ -123,7 +123,7 @@ QVariant StackModel::data(const QModelIndex &index, int role) const
case DirectoryColumn: case DirectoryColumn:
return frame.directory(); return frame.directory();
case FileColumn: case FileColumn:
return frame.file(); return frame.fileName();
case LineColumn: case LineColumn:
if (frame.line() > 0) if (frame.line() > 0)
return frame.line(); return frame.line();
@@ -139,7 +139,7 @@ QVariant StackModel::data(const QModelIndex &index, int role) const
case FunctionNameRole: case FunctionNameRole:
return frame.functionName(); return frame.functionName();
case FileRole: case FileRole:
return frame.file(); return frame.fileName();
case DirectoryRole: case DirectoryRole:
return frame.directory(); return frame.directory();
case LineRole: case LineRole:

View File

@@ -70,7 +70,7 @@ QT_END_NAMESPACE
void dumpFrame(const Frame &f) void dumpFrame(const Frame &f)
{ {
qDebug() << f.instructionPointer() << f.directory() << f.file() << f.functionName() qDebug() << f.instructionPointer() << f.directory() << f.fileName() << f.functionName()
<< f.line() << f.object(); << f.line() << f.object();
} }
@@ -168,14 +168,14 @@ void ParserTests::testHelgrindSample1()
frame11.setObject(QLatin1String("/usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so")); frame11.setObject(QLatin1String("/usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so"));
frame11.setFunctionName(QLatin1String("QMutex::lock()")); frame11.setFunctionName(QLatin1String("QMutex::lock()"));
frame11.setDirectory(QLatin1String("/build/buildd/valgrind-3.6.0~svn20100212/helgrind")); frame11.setDirectory(QLatin1String("/build/buildd/valgrind-3.6.0~svn20100212/helgrind"));
frame11.setFile(QLatin1String("hg_intercepts.c")); frame11.setFileName(QLatin1String("hg_intercepts.c"));
frame11.setLine(1988); frame11.setLine(1988);
Frame frame12; Frame frame12;
frame12.setInstructionPointer(0x72E57EE); frame12.setInstructionPointer(0x72E57EE);
frame12.setObject(QLatin1String("/home/frank/local/qt4-4.6.3-shared-debug/lib/libQtCore.so.4.6.3")); frame12.setObject(QLatin1String("/home/frank/local/qt4-4.6.3-shared-debug/lib/libQtCore.so.4.6.3"));
frame12.setFunctionName(QLatin1String("QMutexLocker::relock()")); frame12.setFunctionName(QLatin1String("QMutexLocker::relock()"));
frame12.setDirectory(QLatin1String("/home/frank/source/tarballs/qt-4.6.3-build/src/corelib/../../include/QtCore/../../src/corelib/thread")); frame12.setDirectory(QLatin1String("/home/frank/source/tarballs/qt-4.6.3-build/src/corelib/../../include/QtCore/../../src/corelib/thread"));
frame12.setFile(QLatin1String("qmutex.h")); frame12.setFileName(QLatin1String("qmutex.h"));
frame12.setLine(120); frame12.setLine(120);
stack1.setFrames(QVector<Frame>() << frame11 << frame12); stack1.setFrames(QVector<Frame>() << frame11 << frame12);
@@ -186,14 +186,14 @@ void ParserTests::testHelgrindSample1()
frame21.setObject(QLatin1String("/usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so")); frame21.setObject(QLatin1String("/usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so"));
frame21.setFunctionName(QLatin1String("QMutex::lock()")); frame21.setFunctionName(QLatin1String("QMutex::lock()"));
frame21.setDirectory(QLatin1String("/build/buildd/valgrind-3.6.0~svn20100212/helgrind")); frame21.setDirectory(QLatin1String("/build/buildd/valgrind-3.6.0~svn20100212/helgrind"));
frame21.setFile(QLatin1String("hg_intercepts.c")); frame21.setFileName(QLatin1String("hg_intercepts.c"));
frame21.setLine(1989); frame21.setLine(1989);
Frame frame22; Frame frame22;
frame22.setInstructionPointer(0x72E57EE); frame22.setInstructionPointer(0x72E57EE);
frame22.setObject(QLatin1String("/home/frank/local/qt4-4.6.3-shared-debug/lib/libQtCore.so.4.6.3")); frame22.setObject(QLatin1String("/home/frank/local/qt4-4.6.3-shared-debug/lib/libQtCore.so.4.6.3"));
frame22.setFunctionName(QLatin1String("QMutexLocker::relock()")); frame22.setFunctionName(QLatin1String("QMutexLocker::relock()"));
frame22.setDirectory(QLatin1String("/home/frank/source/tarballs/qt-4.6.3-build/src/corelib/../../include/QtCore/../../src/corelib/thread")); frame22.setDirectory(QLatin1String("/home/frank/source/tarballs/qt-4.6.3-build/src/corelib/../../include/QtCore/../../src/corelib/thread"));
frame22.setFile(QLatin1String("qmutex.h")); frame22.setFileName(QLatin1String("qmutex.h"));
frame22.setLine(121); frame22.setLine(121);
stack2.setFrames(QVector<Frame>() << frame21 << frame22); stack2.setFrames(QVector<Frame>() << frame21 << frame22);
@@ -204,14 +204,14 @@ void ParserTests::testHelgrindSample1()
frame31.setObject(QLatin1String("/usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so")); frame31.setObject(QLatin1String("/usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so"));
frame31.setFunctionName(QLatin1String("QMutex::lock()")); frame31.setFunctionName(QLatin1String("QMutex::lock()"));
frame31.setDirectory(QLatin1String("/build/buildd/valgrind-3.6.0~svn20100212/helgrind")); frame31.setDirectory(QLatin1String("/build/buildd/valgrind-3.6.0~svn20100212/helgrind"));
frame31.setFile(QLatin1String("hg_intercepts.c")); frame31.setFileName(QLatin1String("hg_intercepts.c"));
frame31.setLine(1990); frame31.setLine(1990);
Frame frame32; Frame frame32;
frame32.setInstructionPointer(0x72E57EE); frame32.setInstructionPointer(0x72E57EE);
frame32.setObject(QLatin1String("/home/frank/local/qt4-4.6.3-shared-debug/lib/libQtCore.so.4.6.3")); frame32.setObject(QLatin1String("/home/frank/local/qt4-4.6.3-shared-debug/lib/libQtCore.so.4.6.3"));
frame32.setFunctionName(QLatin1String("QMutexLocker::relock()")); frame32.setFunctionName(QLatin1String("QMutexLocker::relock()"));
frame32.setDirectory(QLatin1String("/home/frank/source/tarballs/qt-4.6.3-build/src/corelib/../../include/QtCore/../../src/corelib/thread")); frame32.setDirectory(QLatin1String("/home/frank/source/tarballs/qt-4.6.3-build/src/corelib/../../include/QtCore/../../src/corelib/thread"));
frame32.setFile(QLatin1String("qmutex.h")); frame32.setFileName(QLatin1String("qmutex.h"));
frame32.setLine(122); frame32.setLine(122);
stack3.setFrames(QVector<Frame>() << frame31 << frame32); stack3.setFrames(QVector<Frame>() << frame31 << frame32);
@@ -260,7 +260,7 @@ void ParserTests::testMemcheckSample1()
f1.setObject(QLatin1String("/usr/lib/libQtGui.so.4.7.0")); f1.setObject(QLatin1String("/usr/lib/libQtGui.so.4.7.0"));
f1.setFunctionName(QLatin1String("QFrame::frameStyle() const")); f1.setFunctionName(QLatin1String("QFrame::frameStyle() const"));
f1.setDirectory(QLatin1String("/build/buildd/qt4-x11-4.7.0/src/gui/widgets")); f1.setDirectory(QLatin1String("/build/buildd/qt4-x11-4.7.0/src/gui/widgets"));
f1.setFile(QLatin1String("qframe.cpp")); f1.setFileName(QLatin1String("qframe.cpp"));
f1.setLine(252); f1.setLine(252);
Frame f2; Frame f2;
f2.setInstructionPointer(0x118F2AF7); f2.setInstructionPointer(0x118F2AF7);
@@ -270,13 +270,13 @@ void ParserTests::testMemcheckSample1()
f3.setObject(QLatin1String("/usr/lib/libQtGui.so.4.7.0")); f3.setObject(QLatin1String("/usr/lib/libQtGui.so.4.7.0"));
f3.setFunctionName(QLatin1String("QWidget::event(QEvent*)")); f3.setFunctionName(QLatin1String("QWidget::event(QEvent*)"));
f3.setDirectory(QLatin1String("/build/buildd/qt4-x11-4.7.0/src/gui/kernel")); f3.setDirectory(QLatin1String("/build/buildd/qt4-x11-4.7.0/src/gui/kernel"));
f3.setFile(QLatin1String("qwidget.cpp")); f3.setFileName(QLatin1String("qwidget.cpp"));
f3.setLine(8273); f3.setLine(8273);
Frame f4; Frame f4;
f4.setInstructionPointer(0x6A2B6EB); f4.setInstructionPointer(0x6A2B6EB);
f4.setObject(QLatin1String("/usr/lib/libQtGui.so.4.7.0")); f4.setObject(QLatin1String("/usr/lib/libQtGui.so.4.7.0"));
f4.setDirectory(QLatin1String("/build/buildd/qt4-x11-4.7.0/src/gui/kernel")); f4.setDirectory(QLatin1String("/build/buildd/qt4-x11-4.7.0/src/gui/kernel"));
f4.setFile(QLatin1String("qapplication.cpp")); f4.setFileName(QLatin1String("qapplication.cpp"));
f4.setFunctionName(QLatin1String("QApplicationPrivate::notify_helper(QObject*, QEvent*)")); f4.setFunctionName(QLatin1String("QApplicationPrivate::notify_helper(QObject*, QEvent*)"));
f4.setLine(4396); f4.setLine(4396);
Stack s1; Stack s1;

View File

@@ -180,7 +180,7 @@ void TestRunner::testLeak1()
QCOMPARE(frame.line(), 5 + HEADER_LENGTH); QCOMPARE(frame.line(), 5 + HEADER_LENGTH);
QCOMPARE(frame.object(), binary); QCOMPARE(frame.object(), binary);
QCOMPARE(frame.file(), QLatin1String("main.cpp")); QCOMPARE(frame.fileName(), QLatin1String("main.cpp"));
QCOMPARE(QDir::cleanPath(frame.directory()), srcDirForApp("leak1")); QCOMPARE(QDir::cleanPath(frame.directory()), srcDirForApp("leak1"));
} }
} }
@@ -214,7 +214,7 @@ void TestRunner::testLeak2()
QCOMPARE(frame.line(), 7 + HEADER_LENGTH); QCOMPARE(frame.line(), 7 + HEADER_LENGTH);
QCOMPARE(frame.object(), binary); QCOMPARE(frame.object(), binary);
QCOMPARE(frame.file(), QLatin1String("main.cpp")); QCOMPARE(frame.fileName(), QLatin1String("main.cpp"));
QCOMPARE(QDir::cleanPath(frame.directory()), srcDirForApp("leak2")); QCOMPARE(QDir::cleanPath(frame.directory()), srcDirForApp("leak2"));
} else { } else {
QCOMPARE(frame.functionName(), QLatin1String("(below main)")); QCOMPARE(frame.functionName(), QLatin1String("(below main)"));
@@ -252,7 +252,7 @@ void TestRunner::testLeak3()
QCOMPARE(frame.line(), 7 + HEADER_LENGTH); QCOMPARE(frame.line(), 7 + HEADER_LENGTH);
QCOMPARE(frame.object(), binary); QCOMPARE(frame.object(), binary);
QCOMPARE(frame.file(), QLatin1String("main.cpp")); QCOMPARE(frame.fileName(), QLatin1String("main.cpp"));
QCOMPARE(QDir::cleanPath(frame.directory()), srcDirForApp("leak3")); QCOMPARE(QDir::cleanPath(frame.directory()), srcDirForApp("leak3"));
} else { } else {
QCOMPARE(frame.functionName(), QLatin1String("(below main)")); QCOMPARE(frame.functionName(), QLatin1String("(below main)"));
@@ -293,7 +293,7 @@ void TestRunner::testLeak4()
QCOMPARE(frame.line(), 6 + HEADER_LENGTH); QCOMPARE(frame.line(), 6 + HEADER_LENGTH);
QCOMPARE(frame.object(), binary); QCOMPARE(frame.object(), binary);
QCOMPARE(frame.file(), QLatin1String("main.cpp")); QCOMPARE(frame.fileName(), QLatin1String("main.cpp"));
QCOMPARE(QDir::cleanPath(frame.directory()), srcDir); QCOMPARE(QDir::cleanPath(frame.directory()), srcDir);
} }
{ {
@@ -302,7 +302,7 @@ void TestRunner::testLeak4()
QCOMPARE(frame.line(), 14 + HEADER_LENGTH); QCOMPARE(frame.line(), 14 + HEADER_LENGTH);
QCOMPARE(frame.object(), binary); QCOMPARE(frame.object(), binary);
QCOMPARE(frame.file(), QLatin1String("main.cpp")); QCOMPARE(frame.fileName(), QLatin1String("main.cpp"));
QCOMPARE(QDir::cleanPath(frame.directory()), srcDir); QCOMPARE(QDir::cleanPath(frame.directory()), srcDir);
} }
} }
@@ -332,7 +332,7 @@ void TestRunner::testLeak4()
QCOMPARE(frame.line(), 14 + HEADER_LENGTH); QCOMPARE(frame.line(), 14 + HEADER_LENGTH);
QCOMPARE(frame.object(), binary); QCOMPARE(frame.object(), binary);
QCOMPARE(frame.file(), QLatin1String("main.cpp")); QCOMPARE(frame.fileName(), QLatin1String("main.cpp"));
QCOMPARE(QDir::cleanPath(frame.directory()), srcDir); QCOMPARE(QDir::cleanPath(frame.directory()), srcDir);
} }
} }
@@ -361,7 +361,7 @@ void TestRunner::uninit1()
QCOMPARE(frame.line(), 4 + HEADER_LENGTH); QCOMPARE(frame.line(), 4 + HEADER_LENGTH);
QCOMPARE(frame.object(), binary); QCOMPARE(frame.object(), binary);
QCOMPARE(frame.file(), QLatin1String("main.cpp")); QCOMPARE(frame.fileName(), QLatin1String("main.cpp"));
QCOMPARE(QDir::cleanPath(frame.directory()), srcDir); QCOMPARE(QDir::cleanPath(frame.directory()), srcDir);
} }
//BEGIN second stack //BEGIN second stack
@@ -375,7 +375,7 @@ void TestRunner::uninit1()
QCOMPARE(frame.line(), 2 + HEADER_LENGTH); QCOMPARE(frame.line(), 2 + HEADER_LENGTH);
QCOMPARE(frame.object(), binary); QCOMPARE(frame.object(), binary);
QCOMPARE(frame.file(), QLatin1String("main.cpp")); QCOMPARE(frame.fileName(), QLatin1String("main.cpp"));
QCOMPARE(QDir::cleanPath(frame.directory()), srcDir); QCOMPARE(QDir::cleanPath(frame.directory()), srcDir);
} }
} }
@@ -406,7 +406,7 @@ void TestRunner::uninit2()
QCOMPARE(frame.line(), 4 + HEADER_LENGTH); QCOMPARE(frame.line(), 4 + HEADER_LENGTH);
QCOMPARE(frame.object(), binary); QCOMPARE(frame.object(), binary);
QCOMPARE(frame.file(), QLatin1String("main.cpp")); QCOMPARE(frame.fileName(), QLatin1String("main.cpp"));
QCOMPARE(QDir::cleanPath(frame.directory()), srcDir); QCOMPARE(QDir::cleanPath(frame.directory()), srcDir);
} }
//BEGIN second stack //BEGIN second stack
@@ -420,7 +420,7 @@ void TestRunner::uninit2()
QCOMPARE(frame.line(), 2 + HEADER_LENGTH); QCOMPARE(frame.line(), 2 + HEADER_LENGTH);
QCOMPARE(frame.object(), binary); QCOMPARE(frame.object(), binary);
QCOMPARE(frame.file(), QLatin1String("main.cpp")); QCOMPARE(frame.fileName(), QLatin1String("main.cpp"));
QCOMPARE(QDir::cleanPath(frame.directory()), srcDir); QCOMPARE(QDir::cleanPath(frame.directory()), srcDir);
} }
} }
@@ -439,7 +439,7 @@ void TestRunner::uninit2()
QCOMPARE(frame.line(), 4 + HEADER_LENGTH); QCOMPARE(frame.line(), 4 + HEADER_LENGTH);
QCOMPARE(frame.object(), binary); QCOMPARE(frame.object(), binary);
QCOMPARE(frame.file(), QLatin1String("main.cpp")); QCOMPARE(frame.fileName(), QLatin1String("main.cpp"));
QCOMPARE(QDir::cleanPath(frame.directory()), srcDir); QCOMPARE(QDir::cleanPath(frame.directory()), srcDir);
} }
} }
@@ -470,7 +470,7 @@ void TestRunner::uninit3()
QCOMPARE(frame.line(), 4 + HEADER_LENGTH); QCOMPARE(frame.line(), 4 + HEADER_LENGTH);
QCOMPARE(frame.object(), binary); QCOMPARE(frame.object(), binary);
QCOMPARE(frame.file(), QLatin1String("main.cpp")); QCOMPARE(frame.fileName(), QLatin1String("main.cpp"));
QCOMPARE(QDir::cleanPath(frame.directory()), srcDir); QCOMPARE(QDir::cleanPath(frame.directory()), srcDir);
} }
//BEGIN second stack //BEGIN second stack
@@ -484,7 +484,7 @@ void TestRunner::uninit3()
QCOMPARE(frame.line(), 2 + HEADER_LENGTH); QCOMPARE(frame.line(), 2 + HEADER_LENGTH);
QCOMPARE(frame.object(), binary); QCOMPARE(frame.object(), binary);
QCOMPARE(frame.file(), QLatin1String("main.cpp")); QCOMPARE(frame.fileName(), QLatin1String("main.cpp"));
QCOMPARE(QDir::cleanPath(frame.directory()), srcDir); QCOMPARE(QDir::cleanPath(frame.directory()), srcDir);
} }
} }
@@ -503,7 +503,7 @@ void TestRunner::uninit3()
QCOMPARE(frame.line(), 4 + HEADER_LENGTH); QCOMPARE(frame.line(), 4 + HEADER_LENGTH);
QCOMPARE(frame.object(), binary); QCOMPARE(frame.object(), binary);
QCOMPARE(frame.file(), QLatin1String("main.cpp")); QCOMPARE(frame.fileName(), QLatin1String("main.cpp"));
QCOMPARE(QDir::cleanPath(frame.directory()), srcDir); QCOMPARE(QDir::cleanPath(frame.directory()), srcDir);
} }
} }
@@ -562,7 +562,7 @@ void TestRunner::syscall()
QCOMPARE(frame.line(), 2 + HEADER_LENGTH); QCOMPARE(frame.line(), 2 + HEADER_LENGTH);
QCOMPARE(frame.object(), binary); QCOMPARE(frame.object(), binary);
QCOMPARE(frame.file(), QLatin1String("main.cpp")); QCOMPARE(frame.fileName(), QLatin1String("main.cpp"));
QCOMPARE(QDir::cleanPath(frame.directory()), srcDir); QCOMPARE(QDir::cleanPath(frame.directory()), srcDir);
} }
} }
@@ -595,7 +595,7 @@ void TestRunner::free1()
QCOMPARE(frame.line(), 7 + HEADER_LENGTH); QCOMPARE(frame.line(), 7 + HEADER_LENGTH);
QCOMPARE(frame.object(), binary); QCOMPARE(frame.object(), binary);
QCOMPARE(frame.file(), QLatin1String("main.cpp")); QCOMPARE(frame.fileName(), QLatin1String("main.cpp"));
QCOMPARE(QDir::cleanPath(frame.directory()), srcDir); QCOMPARE(QDir::cleanPath(frame.directory()), srcDir);
} }
} }
@@ -615,7 +615,7 @@ void TestRunner::free1()
QCOMPARE(frame.line(), 6 + HEADER_LENGTH); QCOMPARE(frame.line(), 6 + HEADER_LENGTH);
QCOMPARE(frame.object(), binary); QCOMPARE(frame.object(), binary);
QCOMPARE(frame.file(), QLatin1String("main.cpp")); QCOMPARE(frame.fileName(), QLatin1String("main.cpp"));
QCOMPARE(QDir::cleanPath(frame.directory()), srcDir); QCOMPARE(QDir::cleanPath(frame.directory()), srcDir);
} }
} }
@@ -649,7 +649,7 @@ void TestRunner::free2()
QCOMPARE(frame.line(), 6 + HEADER_LENGTH); QCOMPARE(frame.line(), 6 + HEADER_LENGTH);
QCOMPARE(frame.object(), binary); QCOMPARE(frame.object(), binary);
QCOMPARE(frame.file(), QLatin1String("main.cpp")); QCOMPARE(frame.fileName(), QLatin1String("main.cpp"));
QCOMPARE(QDir::cleanPath(frame.directory()), srcDir); QCOMPARE(QDir::cleanPath(frame.directory()), srcDir);
} }
} }
@@ -673,7 +673,7 @@ void TestRunner::free2()
QCOMPARE(frame.line(), 5 + HEADER_LENGTH); QCOMPARE(frame.line(), 5 + HEADER_LENGTH);
QCOMPARE(frame.object(), binary); QCOMPARE(frame.object(), binary);
QCOMPARE(frame.file(), QLatin1String("main.cpp")); QCOMPARE(frame.fileName(), QLatin1String("main.cpp"));
QCOMPARE(QDir::cleanPath(frame.directory()), srcDir); QCOMPARE(QDir::cleanPath(frame.directory()), srcDir);
} }
} }
@@ -733,7 +733,7 @@ void TestRunner::overlap()
QCOMPARE(frame.line(), 6 + HEADER_LENGTH); QCOMPARE(frame.line(), 6 + HEADER_LENGTH);
QCOMPARE(frame.object(), binary); QCOMPARE(frame.object(), binary);
QCOMPARE(frame.file(), QLatin1String("main.cpp")); QCOMPARE(frame.fileName(), QLatin1String("main.cpp"));
QCOMPARE(QDir::cleanPath(frame.directory()), srcDir); QCOMPARE(QDir::cleanPath(frame.directory()), srcDir);
} }
} }