diff options
-rw-r--r-- | src/libs/utils/elfreader.cpp | 12 | ||||
-rw-r--r-- | src/libs/utils/elfreader.h | 3 | ||||
-rw-r--r-- | src/plugins/debugger/gdb/gdbengine.cpp | 4 |
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 §ion = m_headers.at(i); + const ElfHeader §ion = 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 §ion, sections) { + foreach (const ElfHeader §ion, 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; } |