summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/libs/utils/elfreader.cpp12
-rw-r--r--src/libs/utils/elfreader.h3
-rw-r--r--src/plugins/debugger/gdb/gdbengine.cpp4
3 files changed, 10 insertions, 9 deletions
diff --git a/src/libs/utils/elfreader.cpp b/src/libs/utils/elfreader.cpp
index 1bf20b81a9..3a357ef097 100644
--- a/src/libs/utils/elfreader.cpp
+++ b/src/libs/utils/elfreader.cpp
@@ -122,7 +122,7 @@ ElfReader::ElfReader(const QString &binary)
ElfHeaders ElfReader::readHeaders()
{
- if (m_headers.isEmpty())
+ if (m_headers.headers.isEmpty())
readIt();
return m_headers;
}
@@ -271,7 +271,7 @@ ElfReader::Result ElfReader::readIt()
m_headers.symbolsType = PlainSymbols;
else if (section.name == ".gnu_debuglink")
m_headers.symbolsType = SeparateSymbols;
- m_headers.append(section);
+ m_headers.headers.append(section);
s += e_shentsize;
}
@@ -281,7 +281,7 @@ ElfReader::Result ElfReader::readIt()
QByteArray ElfReader::readSection(const QByteArray &name)
{
QByteArray contents;
- if (m_headers.isEmpty())
+ if (m_headers.headers.isEmpty())
readIt();
int i = m_headers.indexOf(name);
if (i == -1)
@@ -291,7 +291,7 @@ QByteArray ElfReader::readSection(const QByteArray &name)
if (!mapper.map())
return contents;
- const ElfHeader &section = m_headers.at(i);
+ const ElfHeader &section = m_headers.headers.at(i);
contents = QByteArray((const char *)mapper.start + section.offset, section.size);
return contents;
@@ -299,8 +299,8 @@ QByteArray ElfReader::readSection(const QByteArray &name)
int ElfHeaders::indexOf(const QByteArray &name) const
{
- for (int i = 0, n = size(); i != n; ++i)
- if (at(i).name == name)
+ for (int i = 0, n = headers.size(); i != n; ++i)
+ if (headers.at(i).name == name)
return i;
return -1;
}
diff --git a/src/libs/utils/elfreader.h b/src/libs/utils/elfreader.h
index 21378a7e26..af65c42445 100644
--- a/src/libs/utils/elfreader.h
+++ b/src/libs/utils/elfreader.h
@@ -73,7 +73,7 @@ public:
quint64 data;
};
-class QTCREATOR_UTILS_EXPORT ElfHeaders : public QList<ElfHeader>
+class QTCREATOR_UTILS_EXPORT ElfHeaders
{
public:
ElfHeaders() : symbolsType(UnknownSymbols) {}
@@ -81,6 +81,7 @@ public:
public:
DebugSymbolsType symbolsType;
+ QList<ElfHeader> headers;
};
class QTCREATOR_UTILS_EXPORT ElfReader
diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp
index f50a2a6aaa..a3d89f6dc2 100644
--- a/src/plugins/debugger/gdb/gdbengine.cpp
+++ b/src/plugins/debugger/gdb/gdbengine.cpp
@@ -5385,7 +5385,7 @@ void GdbEngine::checkForReleaseBuild()
}
QSet<QByteArray> seen;
- foreach (const ElfHeader &section, sections) {
+ foreach (const ElfHeader &section, sections.headers) {
msg.append(section.name);
msg.append(' ');
if (interesting.contains(section.name))
@@ -5398,7 +5398,7 @@ void GdbEngine::checkForReleaseBuild()
return;
}
- if (sections.isEmpty()) {
+ if (sections.headers.isEmpty()) {
showMessage(_("NO SECTION HEADERS FOUND. IS THIS AN EXECUTABLE?"));
return;
}